【问题标题】:When three numbers out of four are the same [closed]当四个中的三个数字相同时[关闭]
【发布时间】:2017-01-23 04:44:46
【问题描述】:

我使用随机生成器生成四个数字,然后我必须确定其中三个是否相同

以下代码有什么问题?

if((r1= r2 =r3)|| (r1 = r2 = r4)|| (r1 = r3 =r4)|| (r2 = r3 =r4)) {
    System.out.println("Three of a kind.");
}

错误提示无法从int 转换为boolean。另外,我认为应该是==,但== 会产生错误,而= 不会。

【问题讨论】:

  • r1 = r2 = r3 使 r1r2 等于 r3。比较应该更像r1 == r2 && r1 == r3 .. 因为这意味着r2 == r3 扩展
  • 不,不是重复(上一条评论)
  • 另外:考虑在这里使用一个数组来保存值,而不是 4 个不同的变量...因为这使您的解决方案很难增强。
  • "但是 == 会产生错误,而 = 不会产生错误" -- 你不是刚刚说你得到一个错误“无法将 int 转换为 boolean= 吗??

标签: java if-statement


【解决方案1】:

您需要使用相等运算符==,而不是赋值运算符=

当你比较整数时,你会这样做:

if(int1 == int2) {
    // they are equal
}

如果你想测试 3 个整数是否相等,你可以这样做:

if(int1 == int2 && int2 == int3) {
    // all three integers are equal
}

看到我们使用了逻辑 AND 运算符 && 来组合两个布尔表达式,因此两个表达式必须相等,if 语句才能计算为 true

【讨论】:

    猜你喜欢
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-06
    相关资源
    最近更新 更多