/ 如果for循环进入i< numbers.length然后怎么会在i == numbers.length?它不会停止迭代在numbers.length-1? /
class Phone {
public static void main(String args[]){
String numbers[][] = {
{"Tom", "535-5334"},
{"Bill", "432-5432"}
};
int i;
if(args.length != 1)
System.out.println("Usage: java Phone <name>");
else {
for(i=0; i<numbers.length; i++) {
if(numbers[i][0].equals(args[0])){
System.out.println(numbers [i] [0] + ":" + numbers [i][1]);
break;
}
}
if(i == numbers.length)
System.out.println("name not found");
}
}
}
这个例子在我的java入门书中,我不明白。如果for循环使用i&lt; = numbers.length
,那对我来说是有意义的答案 0 :(得分:1)
来自docs,
for (initialization; termination; increment) { statement(s) }
...每次迭代循环后都会调用增量表达式...
因此,如果在numbers
数组中找不到名称,则for循环计数器i
上升到numbers.length
,终止numbers.length < numbers.length
失败并且for循环退出
因此,循环出口处的i = numbers.length
会打印出消息。
另一方面,如果在数组中找到了名称,则break
之前的for循环i
将到达numbers.length
,并且不会打印该消息。