2011-04-06 86 views
0

經與下一個奇怪的一天,我得到一個編譯錯誤expected ‘)’ before ‘;’令牌行else if(inputIntWithinRange(r, 1, MAX_MINES_GRID) == FALSE) validated = FALSE;之前預期「)」「;」令牌

如果我評論說,線路輸出我不再得到的錯誤。據我所知,我的語法沒問題,是否有人對這裏發生的事情有一個暗示?

謝謝!

do 
    { 
     validated = TRUE; 

     getUserInput(input, MAX_MINES_LENGTH + EXTRA_SPACES); 
     sscanf(input, "%d", &r); 

     if(inputWithinAllowedLength(input) == FALSE) validated = FALSE; 
     else if(inputDigitsOnly(input) == FALSE) validated = FALSE; 
     else if(inputIntWithinRange(r, 1, MAX_MINES_GRID) == FALSE) validated = FALSE; 
    } 
    while(validated == FALSE); 
+1

最簡單的方法來調試這將是包裝在大括號你如果和其他的代碼塊{並把它放在一個新的線上。你也可以將邏輯簡化爲單個if(inputWithinAllowedLength(input)== FALSE || inputDigitsOnly(input)== FALSE || inputIntWithinRange(r,1,MAX_MINES_GRID)== FALSE)validated = FALSE;'even改爲將'== FALSE'改爲預置的'!'。 – darvids0n 2011-04-06 04:27:18

+2

什麼是MAX_MINES_GRID定義爲? – 2011-04-06 04:31:16

+2

我會看你的'#define's。 'MAX_MINES_GRID'如何定義並且是'FALSE'的定義好嗎? – sje397 2011-04-06 04:32:47

回答

5

我知道我不是回答這個問題,但我會改變代碼爲:

validated = inputWithinAllowedLength(input) 
    && inputDigitsOnly(input) 
    && inputIntWithRange(r, 1, MAX_MINDES_GRID); 
+0

感謝理查德的建議,我喜歡這個! – Chris 2011-04-06 04:36:34