Java 我可以比较用户的输入而不将其分配给变量吗?

Java 我可以比较用户的输入而不将其分配给变量吗?,java,java.util.scanner,Java,Java.util.scanner,我需要编写一个纬度/经度程序,如果用户的输入不符合某些参数,则不会将其存储为纬度/经度的一部分。我知道我可能会为这个赋值创建一个数组或ArrayList,但为了简单起见,我只是决定创建一个经度和纬度变量。我的问题是,我是否可以比较用户的输入而不将其分配给另一个变量。 以下是我的代码片段: Scanner run = new Scanner(System.in); boolean start = true; double latitude; double longtitude; while(sta

我需要编写一个纬度/经度程序,如果用户的输入不符合某些参数,则不会将其存储为纬度/经度的一部分。我知道我可能会为这个赋值创建一个数组或ArrayList,但为了简单起见,我只是决定创建一个经度和纬度变量。我的问题是,我是否可以比较用户的输入而不将其分配给另一个变量。 以下是我的代码片段:

Scanner run = new Scanner(System.in);
boolean start = true;
double latitude;
double longtitude;
while(start) {
   System.out.println("Please enter the latitude:");
   if(!(run.nextDouble() < -90 || run.nextDouble() > 180)) { /*checking to 
                                see if the user input meets the restrictions 
                                and can therefore be assigned a variable*/
      latitude = run.nextDouble();
   }
   else {
       System.out.println("Incorrect Latitude or Longtitude");
   }

简而言之,不是。每次你调用nextDouble,用户都必须提供一个新的输入。您需要在一个临时变量中捕获它们的输入以进行比较,然后在通过时将其分配给纬度。

在您的示例中,您要调用run.nextDouble三次:

if(!(run.nextDouble() < -90 || run.nextDouble() > 180)) { 
     latitude = run.nextDouble();
}

为什么不创建一个额外的变量来保存输入呢?如果输入有效,则将该变量指定给latitude。这是否意味着如果我只使用nextDouble一次,它就可以工作?@Letta每次调用nextDouble时,它都会读取一个输入。虽然假设您可以多次调用它,但每次都得到相同的值是一个常见的错误,但这不是API的工作方式。
while(start) {
   double temp = run.nextDouble();
   System.out.println("Please enter the latitude:");
   if(!(temp < -90 || temp > 180)) { 
      latitude = temp;
   }
   else {
      System.out.println("Incorrect Latitude or Longtitude");
   }
} //temp is now out of scope