无法从int转换为boolean。 Java错误(新案例)

时间:2015-01-04 16:25:14

标签: java int boolean

我正在使用java中的TicTacToe gui程序。我创建了一个班级PlayerTurn。为了检查播放器的转向,我在java中使用了player = (player%2) ? 1 : 2;。我在C ++项目中使用它工作正常,但在Java中我得到错误类型不匹配:无法从int转换为布尔 我已将播放器声明为 int。

2 个答案:

答案 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;