【发布时间】:2015-10-22 09:43:31
【问题描述】:
我试图了解我的 else 语句是如何在这个简单的程序中没有被访问的,基本上,我想做的是循环遍历一个随机数数组,如果找到该项目,文本将显示演示它已经被发现。如果还没有找到我用继续进行下一次迭代。如果根本没有找到,那么会跳出一条语句,解释在数组中没有找到该项目。
import java.util.*;
public class practice {
public static void main(String[] args) {
int myA[] = new int[11];
int toS = 59;
Random f = new Random();
for(int j = 0; j < myA.length; j++){
myA[j] = f.nextInt(10);
}
System.out.println("The array has");
for(int x = 0; x < myA.length; x++){
System.out.println(myA[x]);
}
System.out.println("Loop through elements");
System.out.println("loop test");
for(int u = 0; u < myA.length; u++){
if(myA[u] == toS){
System.out.println("Item found" );
break;
}
if(myA[u] != toS){
continue;
}
else{
System.out.println("Item not in list");
break;
}
}// end of loop
}//After this no more code
}
我是不是想多了?我使用调试器单步执行进程,我看到 continue 语句是从循环中跳出并结束的语句,而没有传递给 else 语句。我将如何修复迭代?如果我删除 continue 块,代码只会检查第一次迭代。
谢谢你们的时间。
【问题讨论】:
-
循环中的逻辑没有意义。第一个
if表示if (myA[u]==toS) { ... break; }。所以只有当myA[u]不等于toS时,迭代才能继续。很明显,else子句永远不会触发。
标签: java arrays for-loop continue