无法从int转换为boolean。Java错误(新案例)
我在用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; 在三元
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:是的,我也意识到了这一点。