0

基本上我有以下代码。问题是,如果 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");
            }
        }
4

3 回答 3

0

2件事:

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");
于 2013-11-07T00:02:05.027 回答
0

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

break;

在 println 之后

for (int i = 0; i < 6; i++)
{  
    if (res >= 40 && parts[i] >= 40)
    {
      System.out.println("Pass");
      break;
    }
}
于 2013-11-07T00:02:18.513 回答
0

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

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

while(true){
    //do stuff
    if(condition){
        break;
    }
}
于 2013-11-07T00:03:16.690 回答