在'if'中启动值并在代码错误中使用它

0 java if-statement

    System.out.println("\n What is the chemical symbol for water\n 1.HO2 \n 2.H20 \n 3.OOH \n 4. O2H");
    b = input.nextInt();
    if (b==2) {
        B=20;
    }
    else if (b != 2) {
        B=0;
    }

    **total= A+B;**
    switch (total) {    
        case 40:
            System.out.println("WOW You scored 40/40, you sure know your science");
            break;
        case 20:
            System.out.println("Meh,20/40.");
            break;
        case 0:
            System.out.println("0/40 Better luck next time!");
            break;
    }
Run Code Online (Sandbox Code Playgroud)

我正在制作一个简单的mcq练习应用程序,它将根据正确答案的数量对用户进行评分.我用if if根据答案给出整数'A'和'B'值.但它给我的错误,在总= A + B一个 (A已在前面的,如果类似这样的语句被初始化)尚未初始化.任何解决方案 请原谅我一个不高兴的人

rge*_*man 5

Java编译器不会确定至少有一个ifelse ifbody将执行并且B将被初始化,因此它认为如果两个条件都失败,则B不会初始化.

你打算让条件成为对立的,所以只有一个条件true,所以只需使用一个else.使用a else而不是a else if,编译器将看到B在以后使用它时将始终初始化.

if (b==2)
    B=20;
else
    B=0;
Run Code Online (Sandbox Code Playgroud)