2011-04-06 104 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

相关问题