有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java在循环中使用if语句

我写了一个小代码:

System.out.println("Please enter a number");
int number = scan.nextInt();

if(number == 1) {
    System.out.println("Number is 1");
} else if(number == 2) {
    System.out.println("Number is 2");
} else {
    System.out.println("Invalid selection");
}

当用户输入不同于1和2的数字时,用户会收到“无效选择”消息,然后代码终止。我不希望它终止,我希望它再次运行,直到用户写入1或2。我试着做while循环,但它变成了一个无限循环。你有什么建议


共 (4) 个答案

  1. # 1 楼答案

    您可以在这里使用while循环

     Scanner scanner = new Scanner(System.in);
     boolean status = true;
     while (status) { // this runs if status is true
        System.out.println("Please enter a number");
         int number = scanner.nextInt();
         if (number == 1) {
            System.out.println("Number is 1");
            status=false; // when your condition match stop the loop
         } else if (number == 2) {
            System.out.println("Number is 2");
            status=false;// when your condition match stop the loop
         } else{
            System.out.println("Invalid selection");
         }
     }
    
  2. # 2 楼答案

    @Dosher,重新发布@Raj_89的答案,并在while循环条件下进行更正。请注意,同时循环条件

    int number = 0;
            do{
                System.out.println("Please enter a number");
                Scanner scan = new Scanner(System.in);
                number = scan.nextInt();
              if(number == 1)
                {
                  System.out.println("Number is 1") ;
                }
    
              else if(number == 2)
               {
                  System.out.println("Number is 2") ;
                }
              else
               {
                  System.out.println("Invalid selection") ;
                }
             }while(number==1 || number==2);
    
  3. # 3 楼答案

    试试这个

    int number;
    do{
        System.out.println("Please enter a number");
        number = scan.nextInt();
      if(number == 1)
        {
          System.out.println("Number is 1") ;
        }
    
      else if(number == 2)
       {
          System.out.println("Number is 2") ;
        }
      else
       {
          System.out.println("Invalid selection") ;
        }
     }while(number!=1 && number!=2);
    
  4. # 4 楼答案

    我建议您在调用^{}之前,先检查是否存在带有^{}int。如果您在while循环中使用它,那么这将是一个很好的循环测试条件

    Scanner scan = new Scanner(System.in);
    System.out.println("Please enter a number");
    while (scan.hasNextInt()) {
        int number = scan.nextInt();
        if (number == 1) {
            System.out.println("Number is 1");
            break;
        } else if (number == 2) {
            System.out.println("Number is 2");
            break;
        } else {
            System.out.println("Invalid selection");
        }
    }
    // ...