如果/ else如果没有执行,即使它出现在while循环内的条件

时间:2013-03-24 17:02:18

标签: c++ while-loop if-statement

相当于标题所说的内容。我是这个彩票号码分配的最后一点,我不知道为什么我调试时第二组if / else if语句没有显示。我知道if / else语句是互斥的 - 但是如果两个测试都不应该是if和then 这是代码。

count=0;
while(count<5)
{
    if(lottery[count] == user[count])
    {
        lotto = lottery[count];
        cout<<"So, you matched numbers with "<<lotto <<".\n";
        tally++;
    }
        if(tally==5 && count == 5)
        {
            cout<<"Congratulations, you're the grand prize winner!";
        }
        else if(tally < 5 && count == 5)
        {
            cout<<"A total of "<<tally<<" of your lottery picks matched.";
        }
        else if(tally == 0 && count == 5)
        {
            cout<<"Caution. The following comment is an inside joke. Read at your own risk.";
            cout<<"Bet you feel like a total loser huh? Nothing matched.";
        }

    count++;
}

我知道为了简单起见,我可能应该用for循环替换while循环但是我对此更加舒服。

2 个答案:

答案 0 :(得分:8)

执行count块时,

5 永远不会<{1}}。

一旦变为if,条件就会失败并且循环停止。

答案 1 :(得分:5)

count永远不会等于5条件所需的if-else条件内的count。如果您在<{em> if-else之前增加了tally ,那么就可以满足其中一个条件(取决于{{1}}的值)。