我一直在使用带有arrayList的Java程序进行工作,该arrayList接受用户输入(双精度),但是当用户输入-999时终止。我尝试了各种while循环,并不断出错。
import java.util.Scanner;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
double Size;
Scanner in = new Scanner(System.in); // scanner object for user input
double a = -999;
ArrayList<Double> inputs = new ArrayList<Double>();
System.out.println("Enter a number, to terminate enter -999 :");
while (in.hasNextDouble()) {
inputs.add(in.nextDouble()); }
if (in != a)
System.out.println("Enter a number, to terminate enter -999 :");
else{
break;
}
}
}
答案 0 :(得分:1)
您要尝试将扫描仪与len
的双精度值进行比较,应将下一个双精度值分配给变量,然后对其进行测试。
x = array.index(sorted(array, key=len)[-1])
# 2
答案 1 :(得分:0)
“ in”是扫描仪,而a是双精度。当您应用!=运算符时,a将转换为Double。由于Scanner!= Double始终为true,因此您会不断循环播放。
您要从扫描仪中检索值并将其转换为双精度值。然后,您要比较该值。
答案 2 :(得分:0)
import java.util.Scanner;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
double Size;
Scanner in = new Scanner(System.in); // scanner object for user input
double a = -999;
ArrayList<Double> inputs = new ArrayList<Double>();
System.out.println("Enter a number, to terminate enter -999 :");
while (in.hasNextDouble()) {
double tmp=in.nextDouble();
inputs.add(tmp);
if (tmp!=a)
System.out.println("Enter a number, to terminate enter -999 :");
else{
break;
}
}
}
}
这是您的代码已更正。
您在while语句中将}
放在错误的位置。
此外,我建议使用一个临时变量(tmp
)来读取值。
这样,您可以毫无问题地使用tmp
。