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

无法从int转换为boolean。Java错误(新案例),java,int,boolean,Java,Int,Boolean,我在用java编写的TicTacToegui程序中工作。我已经创建了一个类PlayerTurn。为了检查玩家回合,我使用了player=(玩家%2)?1 : 2;在java中。我在一个C++项目中使用,它工作得很好,但是在java中,我得到了错误类型不匹配:不能从int转换为布尔< /强> 我已将player声明为int。您需要将模运算的结果与其他内容进行比较,因为三元表达式中的条件必须是布尔值。我猜您想与1进行比较: player = (player%2 == 1) ? 1 : 2; 在三元

我在用java编写的
TicTacToe
gui程序中工作。我已经创建了一个类
PlayerTurn
。为了检查玩家回合,我使用了
player=(玩家%2)?1 : 2;在java中。我在一个C++项目中使用,它工作得很好,但是在java中,我得到了错误<强>类型不匹配:不能从int转换为布尔< /强>

我已将player声明为int。

您需要将模运算的结果与其他内容进行比较,因为三元表达式中的条件必须是
布尔值。我猜您想与
1
进行比较:

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

在三元运算符中:

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

因此,
player=(播放器%2)?1:2
无效。(类型不匹配:无法从int转换为boolean
(播放器%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;
min_Val=a
(玩家%2)
的结果类型是什么?
的第一个操作数必须是什么类型?:
的第一个操作数必须是什么类型?Dupe:-虽然我不想根据自己的意见关闭它…@MirwiseKhan:好的,请查看我更新的答案。如果这回答了你的问题,请告诉我。很可能他在找
!=0
,因为在许多类似C的语言中,0代表
false
@amit:是的,我也意识到了这一点。