我在记事本中的数据
1,2,3,4,5,6,7,8,9,10...
为什么str ==5
使用break时工作不好,我的数据应该在数字5时停止...只显示1,2,3,4,5,6,7,8,9,10...
Scanner sc = new Scanner (new File("c:/Users/ASUS/Desktop/Numbers.txt"));
while (sc.hasNextInt()){
int str = sc.nextInt();
for (int i=0; i<str; i++){
if (str == 5);
break;
}
System.out.print(str+ " ");
}
sc.close();
}
}
答案 0 :(得分:2)
你需要摆脱;在if(str==5);
之后应该没有;。
for (int i=0; i<str; i++){
if (str == 5)
{
break;
}
}
问题是你的循环实际上并没有进行任何处理。你循环最多6次,但你在循环中没有做任何事情。在这种情况下,你不能在所有循环中改变你的输出完全没用......
你只是打破for循环而不是while循环。如果你想要摆脱while循环,你应该这样做:
Scanner sc = new Scanner (new File("c:/Users/ASUS/Desktop/Numbers.txt"));
while (sc.hasNextInt()){
int str = sc.nextInt();
System.out.print(str+ " ");
if (str == 5)
{
break;
}
}
sc.close();
}
}
答案 1 :(得分:1)
您只需更改代码即可:
Scanner sc = new Scanner (new File("c:/Users/ASUS/Desktop/Numbers.txt"));
int str = sc.nextInt();
while (sc.hasNextInt() && str != 6){
System.out.print(str+ " ");
str = sc.nextInt();
}
sc.close();
}
}
答案 2 :(得分:0)
只是回答这个例子,你的if后面的;
结束if语句。使用大括号{}
if(str==5){
break;
}
这样:
Scanner sc = new Scanner (new File("c:/Users/ASUS/Desktop/Numbers.txt"));
while (sc.hasNextInt()){
int str = sc.nextInt();
if (str == 5){
break;
}
System.out.print(str+ " ");
}
sc.close();
}
}
另一种方法是加载整行,在,
上拆分,然后遍历以下数组,如果有5,则打印出来,如果找到则打印出来
答案 3 :(得分:0)
我认为只要找不到数字,解决办法就是循环。
boolean foundFive = false;
Scanner sc = new Scanner (new File("c:/Users/ASUS/Desktop/Numbers.txt"));
while (sc.hasNextInt() && !foundFive) {
int number = sc.nextInt();
System.out.print(number+ " ");
if (number == 5) {
foundFive = true;
}
}
sc.close();