更简单的方法来重写这个循环

时间:2016-07-22 07:38:05

标签: for-loop optimization

是否有更简单的方法来重写此循环?代码较少的东西。 任何帮助表示赞赏。

       for(int i=0; i< 50; i++){
         if(i>=0 && i<10){
            method(arr[0]);
         }
         if(i>=10 && i<20){
         method(arr[1]);
         }
         if(i>=20 && i<30){
         method(arr[2]);
         }
         if(i>=30 && i<40){
         method(arr[3]);
         }
         if(i>=40 && i<50){
         method(arr[4]);
         }

     }

4 个答案:

答案 0 :(得分:2)

你可以使用这种方法:

for(int i = 0; i < 50; i++){
  int index = i == 0 ? 0 : (int)Math.floor(i / 10);
  method(arr[index]);
}

答案 1 :(得分:1)

我可能会使用模块化功能和计数器重写它。这应该有助于显着减少代码。

int index;
int count = 0;
for(int i=0; i< 50; i++){
    index = i%10;
    if(index==0){
        count++;
    }
    method(arr[count-1]);
}

答案 2 :(得分:1)

for (int i = 0; i < arr.length; i++) {
    for (int j = 0; j < 10; j++) {
        method(arr[i]);
    }
}

您可以使用函数来提高可读性:

for (int i = 0; i < arr.length; i++) {
    method10(arr[i]);
}

答案 3 :(得分:0)

使用else

for (i=0; i<50: i++) {
  if (i<10) {
    method(arr[0]);
  } else if (i<20) {
    method(arr[1]);
  } else if (i<30) {
    method(arr[2]);
  } else if (i<40) {
    method(arr[3]);
  } else {
    method(arr[4]);
  }
}

对于一个班轮,您可以使用简短的if语句。 FALSE检查另一个条件的地方

for (i=0; i<50: i++) {
  (condition) ? TRUE : FALSE
}