【发布时间】:2013-09-08 00:01:19
【问题描述】:
/如果 for 循环进入 i/
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 对我来说很有意义
【问题讨论】:
-
问题到底是什么?你不明白什么?
-
您发布的内容无法编译。您有一个 String 数组,但有 int 元素。而且您无法将
args[0]与1进行比较,它们属于不同的类型,String与int。 -
它打断了我的问题,即 if(i==numbers.length) 何时发生?它只迭代到 i
-
这可能会帮助您了解有效的数组索引范围从 0 到 length-1。因此,如果循环在
i==number.length时执行,您将拥有ArrayIndexOutOfBoundsError。