public static void main(String args[]) {
int i = 0;
String greetings[] = { " Hello world !", " Hello World !! ",
" HELLO WORLD !!!" };
while (i < 4) {
try {
System.out.println(greetings[i++]);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("数组下标越界异常");
} finally {
System.out.println(i);
}
}
}
输出结果为:
Hello world !
1
Hello World !!
2
HELLO WORLD !!!
3
数组下标越界异常
4
因为是greetings[(i++)]这样能理解了不
不能,报错按理说,直接System.out.print()这个都是不能打印的,为什么i会加!
@取经的曲:
System.out.println(greetings[i++]); 这个语句可以分为
1.(i++) 2. (greetings[i++]) 3.System.out.println(greetings[i++]);
1.会正常执行并返回值.这时i已经++了
2.的时候会抛异常.所以2-3都不会执行.
你的知识点缺失在于:表达式
没有表达式这个概念.花点时间理清下什么叫:表达式.就好了
@吴瑞祥: 搜噶,我好想懂了!谢谢啦 我好好看看表达式去,非常感谢!
@吴瑞祥: 我还有一点点小问题,第一步既然i已经是i++了 那么也就是说i已经自加了,那么为什么第二步还是用的i自加之前的值!
@取经的曲: 这个是++运算符的事情.
i++这个表达式的值还是i.先返回i的值后.i再+=1.
如果是++i就是先i+=1.再返回i的值
@吴瑞祥: i++的原理我懂得,就是没理解这个,如果像你说的,那就不存在先算第一步了,那应该是先算第二步,再算第一步了。