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报告以下错误(对于每一行):
令牌“!=”上的语法错误,AssignmentOperator
无效令牌“return”上的语法错误,删除此令牌
类型不匹配:无法从布尔值转换为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;
}
答案 0 :(得分:0)
将您的代码更改为此,您的问题已排序
public Boolean prendiTessera(TipoTerreno tipo) {
boolean flag=true;
switch (tipo) {
case PIANURA: flag=tesserePianura != 4 ? true :false; break;
case CAMPAGNA: flag=tessereCampagna != 4 ? true : false;break;
case MONTAGNA: flag=tessereMontagna != 4 ? true : false;break;
case DESERTO: flag=tessereDeserto != 4 ? true : false;break;
case FIUME: flag=tessereFiume != 4 ? true : false;break;
case BOSCO: flag=tessereBosco != 4 ? true : false;break;
default: flag=false;
}
if (flag)
tessereMontagna++;
return flag;
}
问题描述:
tesserePianura != 4 ? tesserePianura++ : return false;
您的这句话并不是一个完整的陈述,这就是您收到错误的原因。 而你的其他部分/最后部分是一个完整的陈述,它不能表达(即三元运算符)。
此外,三元运算符旨在产生一些结果,这些结果将分配给某个变量直接或间接。
让我向你解释一下 直接分配
flag=tessereBosco != 4 ? true : false;
在这种情况下,值直接分配给变量flag
。
间接作业
System.out.println(tessereBosco != 4 ? true : false);
在这种情况下,将对函数(即println()
)变量进行赋值。
答案 1 :(得分:0)
这是使用三元运算符
来纠正这种情况的最简单方法public Boolean prendiTessera(TipoTerreno tipo) {
int test;
switch(tipo){
case PIANURA: test= ( tesserePianura != 4) ? tesserePianura++ : 0; break;
case CAMPAGNA: test=( tessereCampagna != 4) ? tessereCampagna++ : 0;break;
case MONTAGNA: test= (tessereMontagna != 4) ? tessereMontagna++ : 0;break;
case DESERTO: test= (tessereDeserto != 4) ? tessereDeserto++ :0;break;
case FIUME: test= (tessereFiume != 4) ? tessereFiume++ : 0;break;
case BOSCO:test= (tessereBosco != 4) ? tessereBosco++ :0;break;
default: test=0;
}
return (test==1);
}