package mmm;
import java.util.Scanner;
public class Hi{
public static void main(String args[]){
int num1, num2, result, choice;
Scanner abhi = new Scanner(System.in);
System.out.println("You Have The Following Choices:");
System.out.println("1. Addition");
System.out.println("2. Subtraction");
System.out.println("3. Multiplication");
System.out.println("4. Division ");
choice = abhi.nextInt();
System.out.println("Enter The First Number");
num1 = abhi.nextInt();
System.out.println("Enter The Second Number");
num2 = abhi.nextInt();
switch(choice){
case 1:
result = num1 + num2;
break;
case 2:
result = num1 - num2;
break;
case 3:
result = num1 * num2;
break;
case 4:
result = num1 / num2;
break;
default:
System.out.println("Error");
}
System.out.println("The Result Is "+result);
}
}
它说result
没有初始化;而我初步确定了它。
我哪里出错了?我声明了变量类型和所有,并尽我所能。我是一个菜鸟,所以,请原谅我愚蠢的问题和疑问。
任何帮助将不胜感激!
答案 0 :(得分:1)
本地变量没有默认值。如果要访问变量,则必须使用一个变量初始化变量int num1, num2, result, choice;
。
答案 1 :(得分:1)
正如评论所指出的那样。
变量result
仅在choice
1
,2
,3
或4
的情况下获得值。因此,并非所有代码路径都会将变量result
分配给值。
但是,所有代码路径都会导致System.out.println("The Result Is "+result);
。
您必须在result
案例中为default
分配一个值,或者在声明它时使用值初始化它。 。
答案 2 :(得分:1)
如果您进入切换的默认情况,result
变量在尝试打印时将不会收到任何内容。
您必须在进入交换机之前或在default
案例中为其提供默认值。
答案 3 :(得分:0)
在main方法中更改第一行,如下所示:
int num1, num2, result, choice = 0;