【问题标题】:If statement in for loop. How to break if 2/6 elements of array meet requirementsfor 循环中的 if 语句。如果数组的 2/6 个元素满足要求,如何打破
【发布时间】:2013-11-18 12:35:09
【问题描述】:

int 'res' 是parts 数组中所有6 个元素的平均值。我让它工作,以便在以下情况下显示“通过”:
1)平均值(Res)大于等于60。
2) 数组“parts”的所有元素必须大于等于55。
但是
3) 我还需要仅在数组中 6 个元素中有 4 个小于 60 但至少为 55 时才打印“通过”。

任何有关实施第三步的帮助将不胜感激!非常感谢。

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

【问题讨论】:

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


    【解决方案1】:

    最简单的方法是计算符合该条件的成员。

    boolean output1 = true;
    int counter = 0;
    for (int i = 0; i < 6; i++)
    {
     if(parts[i] < 55 || res < 60)
     {
      output1 = false;
      break;
     }
     if(parts[i] >= 55 && parts[i] < 60)
      ++counter;
    }
    if(output1 && counter >= 4)
     System.out.println("Pass");
    

    如果无法满足条件,您也可以中断 for 循环(即您在第三个元素上,但仍然没有任何大于 54 且小于 60 的元素)

    boolean output1 = true;
    int counter = 0;
    for (int i = 0; i < 6; i++)
    {
     if(parts[i] < 55 || res < 60)
     {
      output1 = false;
      break;
     }
     if(parts[i] >= 55 && parts[i] < 60)
      ++counter;
     if(i - counter > 2) //more than 2 did not match already
     {
      output1 = false;
      break;
     }
    }
    if(output1)
     System.out.println("Pass");
    

    【讨论】:

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