当前位置: 首页 > 知识库问答 >
问题:

当条件失败时,我不能循环我的代码。如果用户输入为真,它只是打印两个代码块

南门焱
2023-03-14

我是一个java初学者,我想把这个循环一遍,但我不知道怎么做。我尝试了一个while循环,但它并没有很好地工作,它会打印两个代码块。当我输入“quit、quit或quit”时,它应该终止。取而代之的是,它还打印消息“未能终止程序”。我该怎么办?我还尝试了一个if语句,它工作得很好,但是如果条件失败,我不知道如何循环它。

import java.util.Scanner;

public class fortytwo {

    public static void main(String[] args) {
    
        Scanner scanner = new Scanner(System.in);
        System.out.println("Hi there!");
        String quit = scanner.next();
                
        while (quit.equals("quit") || quit.equals("QUIT") || quit.equals("Quit")) {
            System.out.println("You terminated the program");
            break;
        } 
        System.out.println("You failed to terminate the program.\n To quit, type (quit), (Quit), or (QUIT)");
            
        scanner.close();
    }
}

共有1个答案

楚墨一
2023-03-14

您正在使用一个不需要的循环。另外,break仅退出循环,但在循环后继续执行。将while替换为if/else:

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.println("Hi there!");
    String quit = scanner.next();
            
    if(quit.toLowerCase().equals("quit")) {
        System.out.println("You terminated the program");
    } else {
        System.out.println("You failed to terminate the program.\n To quit, type (quit), (Quit), or (QUIT)");
    }
    scanner.close();
}

这不会再次提示第二个输出提示的输入,但代码也不会。

 类似资料:
  • 我添加了一个while循环,这样如果用户输入无效值,代码将重新提示用户输入有效值。但是当用户输入无效值时,代码会进入无限循环。任何帮助都将不胜感激!!

  • 我正在编写一个代码,生成一个随机数,然后将这个数字分配给字符串字母中的一个字母,然后用户必须猜测该字母。 我正在尝试循环问题“Enter one lowercase letter”:如果用户输入的字母与不匹配,但同时我必须确保该字母都是小写的(这是我们在课堂上没有学到的,但经过搜索我找到了一个解决方案,希望这是正确的方法)。 如果用户输入不正确的低字母,则循环结束。当与匹配时,它确实起作用。 我要

  • 需要一些专家的建议。首先,这里是我的代码: 我的问题是:当我输入一个用户号码如“3”时,提示我的代码只打印一个__当我希望它打印指定的号码。我无论如何也想不出来。 我是英语专业的,所以这不是我的强项:(形状应该是菱形的。)

  • 我的问题是,当我输入一个字母时,它会进入无限循环,不会提示用户输入数量。。。。那是 输入数量:无效数量请输入数字! 输入数量:无效数量请输入数字! 输入数量:无效数量请输入数字!......

  • 我是一个初学者,我从一本书中复制了这段代码,但它不起作用,因为当我进入EOF时,程序将两次打印默认消息,而不是退出while循环。这就像一个小时,我在寻找解决方案,但我所尝试的一切都不起作用,谢谢你的帮助。该程序应该计算每种等级的数量。

  • 我试图解决Dijkstra算法上的一个hackerrank问题--https://www.hackerrank.com/challenges/dijkstrashortreach。我在使用我自己的Dijkstra代码逻辑。虽然我的代码解决了更容易的测试用例,但它在更高的测试用例上失败了。我猜我的代码在某个地方缺少了一些传递性,并且我得到的某个节点的值高于预期。你能帮我找出我的错误吗?问题:输入格式