java问号冒号开关盒
public Boolean prendiTessera(TipoTerreno tipo) {
switch(tipo){
case PIANURA: tesserePianura != 4 ? tesserePianura++ : return false;
case CAMPAGNA: tessereCampagna != 4 ? tessereCampagna++ : return false;
case MONTAGNA: tessereMontagna != 4 ? tessereMontagna++ : return false;
case DESERTO: tessereDeserto != 4 ? tessereDeserto++ : return false;
case FIUME: tessereFiume != 4 ? tessereFiume++ : return false;
case BOSCO: tessereBosco != 4 ? tessereBosco++ : return false;
default: return false;
}
return true;
}
Eclipse报告以下错误(每行):
Syntax error on token "!=", invalid AssignmentOperator
Syntax error on token "return", delete this token
Type mismatch: cannot convert from boolean to int
变量:
private int tesserePianura;
private int tessereCampagna;
private int tessereMontagna;
private int tessereDeserto;
private int tessereFiume;
private int tessereBosco;
枚举类:
public enum TipoTerreno {
/** terreno pianura. */
PIANURA,
/** terreno campagna. */
CAMPAGNA,
/** terreno montagna. */
MONTAGNA,
/** terreno deserto. */
DESERTO,
/** terreno fiume. */
FIUME,
/** terreno bosco. */
BOSCO,
/** terreno Sheepsburg. */
SHEEPSBURG;
}
# 1 楼答案
将您的代码更改为此,您的问题就会得到解决
问题描述:
你的这一行不是完整的语句,这就是为什么你会出错。 您的else部分/最后一部分是一个完整的语句,不能用表达式表示(即三元运算符)
此外,三元运算符意味着产生一些结果,这些结果将被直接分配给某个变量,或间接分配给某个变量
让我给你解释一下 直接分配
在这种情况下,值直接分配给变量
flag
间接分配
在这种情况下,将对函数的(即
println()
)变量进行赋值# 2 楼答案
这是使用三元运算符纠正此错误的最简单方法