【问题标题】: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");