java while 循环

标签 java loops while-loop exit

我尝试读取的输入文件包含第一行条目 block 的行数以及后续行的记录。该文件可能包含许多这样的 block 。例如:

3
a b c
a b 
a c b //Three in the first line tells that there are 3 subsequent lines. 
2
a b
a b c
0 //the input ends here

我试图使用 while 循环一次读取一个 block ,处理它,然后读取另一个 block 。然而,该代码仅在有一个 block 时才有效。当有多个 block 时,它会卡住。有人可以帮助找出问题所在吗?谢谢你!

public static void main(String[] args) {
    Scanner s = new Scanner (System.in);

    while (s.hasNextLine()){
        String number = s.nextLine();
        if (line.equals("0")){
            break;
        }else {

            int n = Integer.parseInt(number);
            for (int i=0; i<n; i++){
                 String letters= s.nextLine();
                 ...
                //do something to store the lines of letters 
            }
        }                   
    }   
}

最佳答案

退出 while 循环的最佳方法(除了仔细使用控制条件之外)是使用 break 语句。

System.exit(0) 将关闭 Java 虚拟机并将状态代码 0 返回给操作系统。这有点激烈。状态代码 0 通常用于指示成功:因此您的返回值是特殊的。

总而言之,您当前的问题是打印问题,请从 if 中删除 !:

if (line.equals("0")){

关于java while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26032461/

相关文章:

string - Bash 循环字符串并向其添加字符串

java - 每 x 秒读取新文件夹并使用其数据

java - 使用 Jackson 反序列化

java - 如何使用 Astyanax 执行 "' 描述“CQL 查询

Java 使用 paintcomponent 创建多个球

c - 1 个函数中的 3 个指针 - 计算器不工作

python - 使用 while 或 if 作为递归条件会导致不同的结果

java - MediatorLiveData 多次调用观察者错误

java - 在 Azure DevOps 发布管道中运行 Java Selenium 测试

c - 变量周围的运行时检查失败堆栈已损坏