基于这篇文章的团队:https://www.sitepoint.com/how-to-declare-variables-javascript/
我声明并初始化了我的变量int结果; 然后在块语句中为其分配一个值,即
if(opCode == 'a')
result = varX + varY
但是,我最后的print语句收到以下错误:
提前谢谢。这应该有助于所有其他新手开始使用条件语句和块语句。 cODE在下面。错误:(32,28)java:变量结果可能尚未初始化
package com.pluralsight.excercise1_conditionalstatements;
public class Main {
public static void main(String[] args) {
int varX = 10;
int varY = 4;
int result;
char opCode = 'a';
if (opCode == 'a') {
result = varX + varY;
} else if (opCode == 's') {
result = varX - varY;
} else if (opCode == 'd') {
result = varX / varY;
} else if (opCode == 'm') {
result = varX * varY;
} else {
System.out.println("Error, invalid code");
}
System.out.println(result);
}
}
答案 0 :(得分:0)
您的变量未初始化。只有满足您的一个条件时才会初始化它。这就是编译器抱怨的原因。
声明它时需要给它一些int值。例如:
int result = -1;
答案 1 :(得分:0)
这是java编译返回未初始化的result
的可能性。
将变量声明为int result = 0;
应该有效。
答案 2 :(得分:0)
问题在于这一行:
System.out.println(result);
如果操作码不等于a,则s,d或m结果永远不会得到值,而且我们尝试打印它会产生错误。但是,您已将opCode设置为等于'a',但java不知道这意味着结果将获得一个值(当然我们可以看到它)。所以你应该将int结果改为例如:
int result = 0;
答案 3 :(得分:0)
计算机正在向您提供此信息,因为在else语句之后,因为您没有完整退出该函数的语句。并且你在最后一个println中使用它,而不是在最后的println之后。事实上,有一个底池可以使用Lost print语句,而不会初始化结果。如果你在else块中放入一个return语句,AST会发现你没有达到你使用结果的最终打印行,并停止给你警告。