我正在尝试制作一组if
语句,其中每个if
将打印,只要一些参数为真,但else
只打印if
没有if
被退回。我不认为else if
在这种情况下会起作用。
我有一些代码(颜色就是例子):
boolean any=false;
if(redStage==2)
{ any=true; System.out.print(redComplete); }
if(blueStage==2)
{ any=true; System.out.print(blueComplete); }
if(greenStage==2)
{ any=true; System.out.print(greenComplete); }
if(any==false)
System.out.print(noneComplete);
我能做些什么来消除需要一个单独的布尔来检查if的参数是否为真?
编辑: (我只是注意到可能令人困惑的事情。我使用的代码实际上并没有使用return。而是打印出结果,这意味着可以返回多个东西。)
答案 0 :(得分:8)
由于您需要彼此独立地处理各个阶段,并且可以同时完成多个阶段,因此您的代码尽可能好。
以下是我对原始问题的回答:
您不需要布尔值。您的代码相当于:
if (redStage == 2) { return redComplete; }
if (blueStage == 2) { return blueComplete; }
if (greenStage == 2) { return greenComplete; }
return noneComplete;
这利用了每个if
正文包含无条件return
的事实。如果不是这种情况,你可以这样表达构造:
if (redStage == 2) {
// redComplete
} else if (blueStage == 2) {
// blueComplete
} else if (greenStage == 2) {
// greenComplete
} else {
// noneComplete
}