1
coderluan 2020-03-20 17:23:19 +08:00
没细看,i++ ,++i ?
|
2
Newyorkcity 2020-03-20 17:27:07 +08:00
i++ 表达式,返回增加后的值
++i 表达式 返回增加前的值 两者都导致 i 加一 |
3
chainzhao188 2020-03-20 17:29:28 +08:00
才疏学浅,没明白这段代码要干什么
|
4
littleylv 2020-03-20 17:37:03 +08:00
scanner.hasNext()
|
5
passerbytiny 2020-03-20 17:40:12 +08:00
你这段代码是要干啥,我真得不想花心思去分析。
length 等于你第一次输入的数值,即 2,那么 arr[2]的时候抛出异常(但你的循环是正常结束的,而不是抛异常)。你这个循环,第一次循环 i=0,然后每执行一次循环体 i 自增。第一次循环 i=0,arr[i++] 即 arr[0],没问题;第二次 arr[1],没问题;第二次循环执行后,i=2 ;第三次循环判断的时候,2<length 过不去了,循环就结束了。总共来说,循环结束前,经历了三次 while 判断,两次循环体执行。加上前面代码的 scanner.nextInt(),总共要 5 个。 |
6
nziming 2020-03-20 17:42:44 +08:00 1
i < length 放到前面就可以了, 原因是 scanner.hasNext()是一个阻塞方法, 会阻塞直到接收到输入
|
7
littleylv 2020-03-20 17:43:37 +08:00 1
scanner.hasNext() 是阻塞的,只要没输入,就永远等在那里,不会进入 while 判断
|