我正在使用java中的TicTacToe
gui程序。我创建了一个班级PlayerTurn
。为了检查播放器的转向,我在java中使用了player = (player%2) ? 1 : 2;
。我在C ++项目中使用它工作正常,但在Java中我得到错误类型不匹配:无法从int转换为布尔
我已将播放器声明为 int。
答案 0 :(得分:2)
您需要将模运算的结果与某些内容进行比较,因为三元表达式中的条件必须是boolean
。我猜你想与1
进行比较:
player = (player%2 == 1) ? 1 : 2;
答案 1 :(得分:0)
在三元运算符中:
result = testCondition ? value1 : value2
testCondition
必须是boolean
值。如果testCondition
评估为true
,则result = value1
。否则,result = value2
。
因此,player = (player%2) ? 1 : 2
不起作用。(类型不匹配:无法从int转换为布尔)(player%2)
是一个int,而不是一个布尔值。将其更改为:
player = (player%2 == 1) ? 1 : 2
转换为:
Is player%2 == 1?
Yes? Then player = 1
No? Then player = 2
这是一个很好的例子:
min_Val = a < b ? a : b;