【发布时间】:2018-01-24 07:57:50
【问题描述】:
我需要接受一些我使用 for 循环的正整数,如下所示:
Scanner in = new Scanner(System.in);
for(int i=0; i<n; i++) {
num = in.nextInt();
//do something with num
}
这需要我 (a) 事先知道整数的数量 n (b) 使用计数器 i
我知道 Java 不接受循环条件中的非布尔表达式。但是如果没有 n 和 i,我该怎么做呢? 例如,类似:
while( (num = in.nextInt()) ) {
//do something with num
}
任何类型的循环(for/while/do-while)都可以。
【问题讨论】:
-
您希望停止条件是什么(即循环何时终止)?
-
所有循环条件都是布尔值。要么停止,要么不停止循环。
-
您可以使用 in.nextLine() 将一行读取为字符串,检查该字符串是否为“退出”或类似的内容,然后退出循环,否则将该字符串解析为整数并继续处理你的号码。
-
希望对您有所帮助.. stackoverflow.com/questions/19950713/…
-
@NoEm - 如果您只对整数感兴趣,使用 in.hasNextInt() 作为条件会在 ANY 非整数输入时自动终止。看我的回答:)
标签: java loops boolean conditional java.util.scanner