0

基本上我有一个长度为 6 的数组。这个数组用于一个简单的 for 循环。在 for 循环中,我有一个 if 语句。问题是,如果满足 if 语句中的条件,那么显然 if 语句之外的所有内容都被执行了。这不是我想要的。

例如,如果数组的第 2 和第 4 个元素仅通过条件,则我需要仅用于执行“arrayp2”和“arrayp4”。

任何帮助都会很棒。提前致谢!

for (int i = 0; i < array.length; i++)
{
    if (array[i] >= 100)
    {
        arrayp1.someMethod(Action);
        arrayp2.someMethod(Action);                 
        arrayp3.someMethod(Action);             
        arrayp4.someMethod(Action);             
        arrayp5.someMethod(Action);                     
        arrayp6.someMethod(Action);
    }
}
4

3 回答 3

0

将 arrayp1、arrayp2、...、arrayp6 也放在数组 A 中

如果您可以通过以下方式访问它们:A[i].someMethod(Action)

于 2013-11-08T10:24:52.557 回答
0

我想你想要一个开关状态。

for (int i = 1; i <= array.length; i++)
{
    switch(i){
         case 1: if (array[i - 1] >= 100) arrayp1.someMethod(Action); break; 
         case 2: if (array[i - 1] >= 100) arrayp2.someMethod(Action); break; 
         case 3: if (array[i - 1] >= 100) arrayp3.someMethod(Action); break; 
         case 4: if (array[i - 1] >= 100) arrayp4.someMethod(Action); break; 
         case 5: if (array[i - 1] >= 100) arrayp5.someMethod(Action); break; 
         case 6: if (array[i - 1] >= 100) arrayp6.someMethod(Action); break; 
    }
}
于 2013-11-08T09:50:37.487 回答
0

您正在使用 2 个 if 语句,其中只需要 1 个。您的第一个 if 语句应该已经可以解决问题了。

if(array[i] >= 100){
      system.out.println("hello world");
   }

for 循环遍历数组的所有值,当条件满足时,将执行 if 语句。

于 2013-11-08T10:09:01.597 回答