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

cannot convert from int to boolean. Java Error (New Case)

我在 java 的 TicTacToe gui 程序中工作。我创建了一个 class PlayerTurn。为了检查玩家的回合,我在 java 中使用了 player = (player%2) ? 1 : 2;。我在 C++ 项目中使用过,它运行良好,但在 Java 中出现错误 Type Mismatch : Cannot convert from int to boolean 我已将玩家声明为 int.

您需要将模运算的结果与某物进行比较,因为三元表达式中的条件必须是 boolean。我猜您想与 1 进行比较:

player = (player%2 == 1) ? 1 : 2;

在三元运算符中:

    result = testCondition ? value1 : value2

testCondition 必须是 boolean 值。如果 testCondition 的计算结果为 true,则 result = value1。否则,result = value2 .

因此,player = (player%2) ? 1 : 2 不起作用。(类型不匹配:无法从 int 转换为 boolean(player%2) 是 int,不是 boolean价值。将其更改为:

player = (player%2 == 1) ? 1 : 2

转换为:

Is player%2 == 1?
   Yes?  Then player = 1
   No?   Then player = 2

这是一个很好的例子:

min_Val = a < b ? a : b;