如果我用x替换typedNum
((typedNum.nextInt() > 21 && typedNum.nextInt()< 30)),那么它运行完美。为什么呢?

import java.util.Scanner;

public class Main {
  public static int number(Scanner typedNum) {
    int x = 0;
    int i = 0;
    while (i < 1) {
      x = typedNum.nextInt();
      if ((typedNum.nextInt() > 21 && typedNum.nextInt()< 30)) {
        System.out.println("in range");
        i=1;
      }
     else {
        System.out.println("Not in range");
      }

    }
    System.out.println(x);
    return (x);
  }

  public static void main(String[] args) {
    Scanner y = new Scanner(System.in);
    number(y);

  }
}

最佳答案

调用typedNum.nextInt()的每个实例都从STDIN接受单独的输入。当您使用x代替函数调用时,它可以完美地工作,因为您只需输入一次,以后再使用多次。

关于java - Java扫描器:我必须输入三次相同的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61145531/

10-10 10:47