java - 循环直到达到有效输入

标签 java while-loop

<分区>

它第一次正确执行,但是:

  1. 它不断打印“请再试一次(是/否)?”不管是什么 输入是在要求继续之后。
  2. 我不确定 != 是否适合用于字符串比较。我想说 loopChoice“不是”Y 或 N,继续问。

    while(isLoop) {
        // Ask for user input
        System.out.print("Enter hours worked: ");
        hoursWorked = scn.nextInt();
    
        System.out.print("Enter rate per hour: ");
        payRate = scn.nextInt();
        scn.nextLine();
    
        // Call functions to compute stuff
        ...
    
        // Print results
        ...
    
        System.out.print("\nDo you want to continue (Y/N)? ");
        loopChoice = scn.nextLine().toUpperCase();
    
        while(loopChoice != "Y" || loopChoice != "N") {
            System.out.print("\nPlease try again (Y/N)? ");
            loopChoice = scn.nextLine().toUpperCase();
        }
    
        switch(loopChoice) {
            case "Y":
                isLoop = true;
                System.out.print("\n");
                break;
    
            case "N":
                isLoop = false;
                System.out.println("Terminating program...");
                scn.close();
                System.exit(0);
                break;
    
            default:
                System.out.println("Your input is invalid!");
                isLoop = false;
                System.out.println("Terminating program...");
                scn.close();
                System.exit(0);
                break;
        }
    }
    

最佳答案

你应该比较 String equals

while (!loopChoice.equals("Y") && !loopChoice.equals("N"))

另外,将 or 运算符替换为 and 运算符

关于java - 循环直到达到有效输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21660210/

相关文章:

java - 网络中最后一个值缓存的目的是什么?

java - 如何使用 Saxon java 库命令行工具执行 schematron 验证?

java - 服务 POWER_CONNECTED 和 POWER_DISCONNECTED。是否可以?

java - 用于嵌入式 Tomcat 8.5 的 Tomcat Maven 插件

c - 这个while循环的时间复杂度是多少?

java - 如何将此自定义 ListView ArrayAdapter 连接在一起?

java - 我应该如何构造这个 while 循环? (JAVA)

java - 这个程序有什么问题

c# - 在不使用 while 循环的情况下找到最内层的异常?

python - 如何让 while 循环识别它是文件结尾