如果语句在for循环中。如果阵列的2/6元素满足要求,如何打破

时间:2013-11-07 01:20:35

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

int'res'是parts数组中所有6个元素的平均值。我有它的工作,以便在以下情况下显示“通过”:
1)平均值(Res)大于或等于60 2)数组“部分”的所有元素必须大于或等于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");

1 个答案:

答案 0 :(得分:0)

最简单的方法是计算遵循该条件的成员。

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");