while(!sc.hasNext)怎么用for循环写出相同效果
时间: 2024-10-09 17:13:49 浏览: 30
如果你想用`for`循环达到类似`while(!sc.hasNext())`的效果,通常`Scanner`对象会在尝试读取下一个可用的值时检查是否还有更多的输入。在`for`循环中,我们可以先初始化一个布尔变量表示是否有输入,然后在循环体里检查并更新这个变量。下面是一个转换的例子:
```java
import java.util.Scanner;
public class InputLoopExample {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean hasNextInput = true; // 初始化表示有输入
for (; hasNextInput; ) { // 循环条件为hasNextInput
if (!sc.hasNext()) { // 检查是否有下一个输入
System.out.println("输入已结束,没有更多数据了.");
hasNextInput = false; // 标记没有更多输入,退出循环
} else {
// 读取输入
String input = sc.next();
System.out.println("你输入的是: " + input);
}
}
sc.close(); // 关闭Scanner
}
}
```
在这个`for`循环中,只要`hasNextInput`为真,就会继续循环,直到`sc.hasNext()`返回false,表明已经到达输入流的结尾。
阅读全文