Java代码运行出现int转boolean报错该如何解决?
你遇到的int转boolean报错是因为代码中if判断误将比较运算符==写为赋值运算符=导致的。
Java的if语句要求括号内必须返回boolean类型的结果,FlipResult = 1是赋值操作,整个表达式的返回值是赋值后的int值1,Java不支持int到boolean的自动类型转换,因此触发编译报错。
修正后的完整代码
public class HeadsOrTails { public static void main(String[] args) { int Heads = 0; int Tails = 0; for(long simulation = 1; simulation <= 2000000; simulation += 1) { int FlipResult = FlipCoin(); // 把赋值=改成比较== if(FlipResult == 1) { Heads +=1; } // 把赋值=改成比较== else if(FlipResult == 0) { Tails += 1; } } System.out.println("Numer of heads appeared: " + Heads); System.out.println("Numer of tails appeared: " + Tails); } private static int FlipCoin() { return (int) (Math.random() + 0.5); } }
可选优化点
因为FlipCoin方法的返回值只有0和1两种可能,所以可以简化判断逻辑,省去第二次比较:
if(FlipResult == 1) { Heads++; } else { Tails++; }
内容的提问来源于stack exchange,提问作者Cyrtus. Cy
相关产品推荐
相关产品推荐

