2014-09-05 61 views
0

有沒有辦法看到,如果循環在數組的某個元素上,執行特定操作?如果在循環中的數組的某個元素上,執行X操作

說如果我在一個循環中的數組的第一個元素,設置一個標誌爲false?

前)

 int carry = 1; 
    int arraySum[] = new int[NUM_DIGITS]; 
    boolean carryFlag = false; 
    for(int i = NUM_DIGITS - 1; i >= 0; i--){ 

     arraySum[i] = array1[i] + array2[i]; 
     if(carryFlag){ 
      arraySum[i] += carry; 
      carryFlag = false; 
     } 

     //if on the last iteration/element of the array, 
     //arraySum[0], carryFlag = false; and continue; 

     if(arraySum[i] > 9){ 
      arraySum[i] = arraySum[i] - 10; 
      carryFlag = true; 
     }       
    }  

很抱歉,如果我的問題聽起來相當模糊的。但是,如果有一種方法周圍使得它像一個布爾值:如果(arraySum [0])carryFlag =假

+0

你的代碼行爲不正確或者你只是問是否有辦法消除該標誌? – 2014-09-05 05:36:10

回答

0

看起來在這個實現中,你可以測試i的值嗎?

有點像if (i==NUM_DIGITS) carryFlag = false;

1

我建議消除標誌和carry設置不同的值:

int carry = 0; 
int arraySum[] = new int[NUM_DIGITS]; 
for(int i = NUM_DIGITS - 1; i >= 0; i--){ 
    arraySum[i] = array1[i] + array2[i] + carry; 

    // check for carry 
    if(arraySum[i] > 9){ 
     arraySum[i] -= 10; 
     carry = 1; 
    } else { 
     carry = 0; 
    } 
} 

退出循環後,如果carry不爲0,那麼總和溢出。

相關問題