【问题标题】:When conditions in a if statement are met inside a for loop, how can I print one result?如果在 for 循环中满足 if 语句中的条件,我如何打印一个结果?
【发布时间】:2013-11-18 11:27:04
【问题描述】:

基本上我有以下代码。问题是,如果 if 语句中的两个条件都满足,我只想打印一次“通过”。 int 'res' 是parts 数组中所有6 个元素的平均值。因此,所有“部分”的值必须至少为 40,并且这些部分的平均值(称为“res”)也必须高于 40。此时代码显然为“的 6 个元素中的每一个输出 Pass如果“parts”数组和“res”的所有六个元素都超过或等于 40,我希望它只输出 Pass 一次。

任何帮助将不胜感激!

for (int i = 0; i < 6; i++)
        {  
            if (res >= 40 && parts[i] >= 40)
            {
              System.out.println("Pass");
            }
        }

【问题讨论】:

    标签: arrays if-statement for-loop return output


    【解决方案1】:

    两件事:

    1) 您看起来只是在检查否定情况。如果您发现任何小于 40 的值,您想要 break 并且不打印“通过”。如果每个元素都超过 40 并且 res 超过 40,您希望继续,直到找到不是的元素或完成列表。如果你通过了整个列表并且没有失败,你就知道你可以打印“通过”。

    2) res 在你提供的循环中没有改变。如果您在循环中更改它,而这只是示例代码,那很好。但如果你不是,你真的应该在循环之外检查一次。

    boolean print = true;
    for (int i = 0; i < 6; i++)
    {  
        if (res < 40 | parts[i] < 40)
        {
          print = false;
          break;
        }
    }
    if(print)
     System.out.println("Pass");
    

    【讨论】:

    • 完美运行。我对Java很陌生,错过了像这样的简单事情。非常感谢您的帮助。真的很感激。
    【解决方案2】:

    如果我正确理解你的问题,你会想把

    break;
    

    打印后

    for (int i = 0; i < 6; i++)
    {  
        if (res >= 40 && parts[i] >= 40)
        {
          System.out.println("Pass");
          break;
        }
    }
    

    【讨论】:

      【解决方案3】:

      您可以在打印到控制台后使用break; 语句退出循环。

      break 用于跳出任何类型的循环。

      while(true){
          //do stuff
          if(condition){
              break;
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-23
        • 2015-10-24
        • 2019-04-27
        • 2013-11-18
        • 2020-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多