创建一个简单的Java程序来添加2个整数(尚未完成)。我特别希望对我的变量“sum”有所帮助。命令提示符表明它可能尚未初始化,
我在“if语句”中定义了sum。我还应该如何定义或者我在这里做错了什么?非常感谢任何帮助!
import java.util.Scanner;
public class Calculator {
public static void main(String[] args){
//Objective: Calculate whole numbers to add, subtract, divide and multiply
Scanner kbd1 = new Scanner(System.in);
Scanner kbd2 = new Scanner(System.in);
int num1, num2, sum;
System.out.println("Enter two whole numbers: ");
num1 = kbd1.nextInt();
num2 = kbd2.nextInt();
System.out.println("Now what would you like to do with these numbers? (Please input add, subtract, multiply, or divide)");
Scanner oper = new Scanner(System.in);
String operation;
operation = oper.nextLine();
if (operation == "add" || operation == "Add")
{
sum = num1 + num2;
}
else
if (operation == "subtract" || operation == "Subtract")
{
if (num1 > num2) {
sum = num1 - num2;
} else {
sum = num2 - num1;
}
}
else
if (operation == "multiply" || operation == "Multiply")
{
sum = num1 * num2;
}
else
if (operation == "divide" || operation == "Divide")
{
sum = num1 / num2;
}
System.out.println("The answer is: " + "/n" + sum);
}
}
更新:
基于Sotirios Delimanolis,getlost和其他答案:
import java.util.Scanner;
public class Calculator {
public static void main(String[] args){
//Objective: Calculate whole numbers to add, subtract, divide and multiply
Scanner kbd1 = new Scanner(System.in);
Scanner kbd2 = new Scanner(System.in);
int num1, num2, sum;
System.out.println("Enter two whole numbers: ");
num1 = kbd1.nextInt();
num2 = kbd2.nextInt();
System.out.println("Now what would you like to do with these numbers? (Please input add, subtract, multiply, or divide)");
Scanner oper = new Scanner(System.in);
String operation;
operation = oper.nextLine();
if (operation.equals("add"))
{
sum = num1 + num2;
}
else
if (operation.equals("subtract"))
{
if (num1 > num2) {
sum = num1 - num2;
} else {
sum = num2 - num1;
}
}
else
if (operation.equals("multiply"))
{
sum = num1 * num2;
}
else
if (operation.equals("divide"))
{
sum = num1 / num2;
}
else
{sum = 0;}
System.out.println("The answer is: " + "/n" + sum);
}
}
这似乎现在起作用,我不得不比较字符串,而不是从用户输入中显示明确的绝对值。谢谢你们!
答案 0 :(得分:2)
System.out.println("The answer is: " + "/n" + sum);
因为你没有初始化int sum;你不能让他们总结以初始化内部条件
例如
int y;
if(condition not true){
y=10;
}
System.out.println(y);
你的代码也是如此。如果你没有初始化会怎么样?
您可以通过初始化sum
int sum=0;
还有一件事 不要使用
operation == "add"
用于比较字符串 你应该使用
operation.equals("add")
答案 1 :(得分:1)
正如@SotirosDelimanolis所建议的那样,有一条执行路径,其中sum
没有得到一个值(即,if
中任何一个中的任何一个测试都不成立)。
一个解决方法是按照@getlost的建议去做;另一个是添加最终else
子句,如果sum
没有成功,它将执行适合if
的任何内容。