我正在尝试更新我的 Blackjack 游戏的软计数,以考虑正在玩的 Ace(值 11 或 1)。使用简式 IF 语句时,为什么第一行代码不正确,但第二行可以使用?这种类型的 if 语句有限制吗?
(counter > 1) ? (softcount+=1) : (softcount+=value); // bad
softcount += (counter > 1) ? 1 : value; // good
最佳答案
这就是语言的定义方式。
只有某些表达式(语句表达式)可以通过添加 ;
变成语句。 (语句表达式 + ;
是一个表达式语句)。
来自JLS Sec 14.8 :
ExpressionStatement:
StatementExpression ;
StatementExpression:
Assignment
PreIncrementExpression
PreDecrementExpression
PostIncrementExpression
PostDecrementExpression
MethodInvocation
ClassInstanceCreationExpression
条件表达式不是语句表达式。
关于java - 为什么不能用简写 IF 语句进行条件赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55866287/