此代码在扫描器类中出现双重问题,问题出在第一个if语句的行。我尝试为我的班级创建一个简单的计算器,输入限制为100,如果数字大于100,则将输入设置为100表示上限。 无论如何,我只是难过,我无法联系到我的老师,我已经在谷歌上找了很多方法,并查看了一些旧的项目。越简单就越好。
{
// create a Scanner to obtain input from the command window
Scanner input = new Scanner(System.in);
double number1; // first number to add
double number2; // second number to add
double sum; // sum of number1 and number2
System.out.print("Enter first number: "); // prompt
{
if ( number1 >= 100 )
{
number1 = input.nextDouble("100");
}
else if ( number1 <= 100 )
{
number1 = input.nextDouble();
}
}
System.out.print("Enter second number: "); // prompt
number2 = input.nextDouble(); // read second number from user
sum = number1 + number2; // add numbers, then store total in sum
System.out.printf("Sum is %.0f\n", sum); // display sum
}
} // end class Addition
答案 0 :(得分:0)
您的第一个问题是您在初始化之前使用该变量。
双号1; ... if(number1&gt; = 100)
没有赋值给number1
答案 1 :(得分:0)
所有这些变量都是局部变量,并且局部变量没有任何默认值,您需要在使用前初始化它们
double number1; // All three of them are not initialized
double number2;
double sum;
所以要么使用
number1=input.getDouble();
if(number1>100){
// do whatever you want to do
}
else{
// do whatever you want to do
}
或初始化
答案 2 :(得分:0)
在为其分配值之前,您尝试使用number1
的值。这应该会给你以下错误&#34;变量&#39; number1&#39;可能尚未初始化&#34; 。
您可以使用Math.min
设置上限,以便number1
最多为100:
Scanner input = new Scanner(System.in);
System.out.print("Enter first number: "); // prompt
double number1 = Math.min(input.nextDouble(), 100); // first number to add
System.out.print("Enter second number: "); // prompt
double number2 = input.nextDouble(); // read second number from user
double sum = number1 + number2; // add numbers, then store total in sum
System.out.printf("Sum is %.0f\n", sum); // display sum
作为旁注,最好将变量声明为尽可能接近使用它们的位置。