0

和标题说的差不多。我到了这个彩票号码分配的最后一点,我不确定为什么在调试时没有显示第二组 if/else if 语句。我知道 if/else 语句是互斥的 - 但不应该一个 if 然后另一个 if 都测试吗?这是代码。

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 循环,但我对 while 更满意。

4

2 回答 2

8

count执行块时永远不会出现。5if

一旦它变成5,条件失败并且循环停止。

于 2013-03-24T17:03:09.290 回答
5

count在您的条件需要的地方,永远不会等于5while 循环内部。if-else如果您在count 之前增加,if-else则可能满足其中一个条件(取决于 的值tally)。

于 2013-03-24T17:03:27.730 回答