我们可以在一行中读取和比较来自控制台的值吗?

Can we read and compare the value from the console in a single line?

以下是我在 c/c++ 中使用的一段代码,它相当简单:

while ((scanf_s("%d", &num) == 1)&&num>0)

下面是读取输入的常用 java 代码:

try(Scanner n1 = new Scanner(System.in))
    {
        System.out.println("Enter the  number of days");
        while(n1.hasNextInt())
        {
            days = n1.nextInt();
            //some stmts
            n1.nextLine();
        }
    }

如何使用 while 来读取输入以及比较单个 "while" 中的值,就像我在 C 和 C++ 中所做的那样;

你可以这样做:

int num;
final Scanner scanner = new Scanner(System.in);
while (scanner.hasNextInt() && (num = scanner.nextInt()) > 0) {
  // do something with num
}

或者,您可以这样做:

  int input;
  final Scanner scanner = new Scanner(System.in);
  System.out.print("Type anything: ");
  try
  {
     input = scanner.nextInt();
     System.out.println("You typed: " + input);
  }
  catch (InputMismatchException e)
  {
     System.out.println("You typed a non-numeric value or the value entered is out of range.");
  }

对于输入不是数字或超出范围的情况,您可以处理异常。