gpt4 book ai didi

Java程序: Variable sum may not have been initialized

转载 作者:行者123 更新时间:2023-11-29 05:16:24 25 4
gpt4 key购买 nike

创建了一个简单的 Java 程序来添加 2 个整数(尚未完成)。我需要专门针对我的变量“sum”的帮助。命令提示符指示它可能尚未初始化,

enter image description here

我在“if 语句”中定义了总和。我还应该如何定义或者我在这里做错了什么?非常感谢任何帮助!

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);
}
}

现在这似乎可以工作了,我必须比较字符串而不是从用户输入中获取明确的绝对值。谢谢大家!

最佳答案

System.out.println("The answer is: " + "/n" + sum);

因为你还没有初始化int sum;您不能授予 sum 以初始化内部条件

例子

int y;
if(condition not true){
y=10;
}
System.out.println(y);

您的代码也是如此。如果 y 未初始化会怎样?

你可以通过初始化sum来修复

int sum=0;

还有一件事不要使用

operation == "add"

用于比较字符串你应该使用

operation.equals("add")

关于Java程序: Variable sum may not have been initialized,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26416652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com