Java 如何初始化一个由“";如果是“那么”;陈述
我正在尝试制作一个简单的代码来玩摇滚、纸牌、科幻,代码还有很多,但这是重要的部分Java 如何初始化一个由“";如果是“那么”;陈述,java,variables,if-statement,Java,Variables,If Statement,我正在尝试制作一个简单的代码来玩摇滚、纸牌、科幻,代码还有很多,但这是重要的部分 int comResult = (int)(Math.random() * 3); String comChoice; if (comResult == 0) { comChoice = "rock"; } else if (comResult == 1) { comChoice = "scizzors"; } else if (comResu
int comResult = (int)(Math.random() * 3);
String comChoice;
if (comResult == 0) {
comChoice = "rock";
} else if (comResult == 1) {
comChoice = "scizzors";
} else if (comResult == 2) {
comChoice = "paper";
}
String results;
if (comChoice == humanChoice)
当我将计算机选项与人类进行比较时,计算机会说我没有为comChoice声明一个值,即使我将它放在if-then语句中,如何正确声明该值您可以在条件块的末尾添加一个“else”以确保comChoice得到初始化
if (comResult == 0) {
comChoice = "rock";
} else if (comResult == 1) {
comChoice = "scizzors";
} else if (comResult == 2) {
comChoice = "paper";
} else {
comChoice = "invalid input";
}
您可以在默认情况下使用开关。如果
comResult
不是1、2或3,那么comChoice
将是什么?Java不允许引用未初始化的值,请将comChoice设置为null。此外,字符串比较是一种引用比较,而不是值比较。@awiebe通过将某些内容更改为对其没有意义的值(计算机不会实际选择null
)来忽略编译器错误,这几乎不是一个好主意。相反,if
-else
块应使用else
作为最后一个块,而不是else if
。这保证了变量被正确地设置为下面的内容,这是编译器错误首先要考虑的。@ChaiT.Rex您的权利,它应该进入else状态,因为程序将进入非法状态,在无效状态下死亡要比在未知状态下继续好得多。也就是说,考虑到代码的质量,我假设错误处理对于学生来说目前没有代码运行那么重要。看起来他们在这一点上可能没有涵盖异常。因为comChoice
代表计算机的选择,所以计算机不太可能实际输入任何内容。另一种方法是,如果(comResult==2)替换为else
…只要在default
情况下,您指定comResult
一个值。。。整个问题在于有一个点需要comResult
的值,但有一条通过程序到达该点的路径,comResult
从未被赋值。