Java - 如何结束 while 函数的进程

标签 java loops while-loop program-entry-point do-while

我需要一个程序,要求用户输入最多 10 个名字(最后,用户可以输入“fim”[葡萄牙语的结尾])。

我当前的问题是,如果用户达到 10 个名称,如何终止程序。

这是我的主要功能:

public static void main(String[] args) {
    Scanner keyboard = new Scanner (System.in);
    System.out.println("Introduza até 10 nomes completos com até 120 caracteres e pelo menos dois nomes com pelo menos 4 caracteres: ");
    String nome = keyboard.next();
    for(int i = 0; i < 10; i++) {
        while(!nome.equalsIgnoreCase("fim") && i<10) {
            nome = keyboard.next();
        }
    }
    keyboard.close();
}

最佳答案

您正在运行 while 的无限循环。您希望将其更改为 if 语句,并仅请求 fim 并在发生这种情况时调用 break;

所以它应该结束为:

for(int i = 0; i < 10; i++) { //This will run 10 times
    nome = keyboard.next();
    if(nome.equalsIgnoreCase("fim")) { //This will verify if last input was "fim"
        break; //This breaks the for-loop
    }
}

或者,如果您确实想在 for 循环中使用 while 循环(不过不推荐),您需要在其中增加 i :

for(int i = 0; i < 10; i++) {
    while(!nome.equalsIgnoreCase("fim") && i<10) {
        nome = keyboard.next();
        i++;
    }
}

关于Java - 如何结束 while 函数的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49309770/

相关文章:

PHP - foreach 循环中的 mysqli_query

java - 查询数据库时 Google App Engine getJDOExceptionForNucleusException 错误

c++ - 虽然循环在输入方面表现得很奇怪

java - 使用 "setUncaughtExceptionHandler"和 "Toast"的全局异常处理

Java for循环跳过运行两次

C++ : Trouble with a nested if loop not ending properly

java - 使用 for 循环创建三角形

c - 在 while 循环中正确使用 scanf 来验证输入

java - 我们如何区分图像滤镜效果?

java - 在服务中读取application.yml