Java,如何使用多字符布尔表达式关闭 do-while 循环?

这是一个相当初学者的问题,但我想知道为什么我的do...while循环没有关闭。

当用户输入不是“C”、“c”、“F”或“f”时,程序应该循环。当该while部分中只有一个布尔表达式有效但不是多个有效时,它似乎关闭。

  public class CelsToFaren
  {
      public static void main(String[] args)
      {
          // scanner setup

          Scanner sc = new Scanner(System.in);
          // Variable declarations
          int celsius;
          int answerC;
          int farenheit;
          int answerF;
          char userLetter;
          do
          {
          // initial menu options
          System.out.println("Which temperature would you like to convert from? ");
          System.out.println(" >(C)elsius ");
          System.out.println(" >(F)arenheit ");
  
          // user input of C, c, F, or f to select option
          userLetter = sc.next().charAt(0);
  
          // if user input C or c
          if ((userLetter ==  'C' || userLetter == 'c'))
          {
              System.out.print("Please enter the temperature: ");
              celsius = sc.nextInt();
              answerC = ((celsius*9/5)+32);
              System.out.println("The answer is: " + answerC + " Farenheit ");
          }
          else
          {
  
              // if user input F or f
             if ((userLetter == 'F' || userLetter == 'f'))
              {
                  System.out.print("Please enter the temperature: ");
                  farenheit = sc.nextInt();
                  answerF = ((farenheit-32)*5/9);
                  System.out.println("The answer is: " + answerF + " Celsius ");
             }
              else
              {
                  // if user input not F, f, C, or c
                 if ((userLetter != 'F' || userLetter != 'f' || userLetter != 'C' || userLetter != 'c'));
                  {
                      System.out.println("Please enter a valid option");
                  }
              }
         }
 
         } while ((userLetter != 'c') || (userLetter != 'C') || (userLetter != 'f') || (userLetter != 'F'));
  
      }
  }

回答

您需要更改退出逻辑。

在你的情况下1 | 0 | 0 = true,循环继续。您需要将其更改为:

while ((userLetter != 'c') && (userLetter != 'C') && (userLetter != 'f') && (userLetter != 'F'));

以上是Java,如何使用多字符布尔表达式关闭 do-while 循环?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>