0

这是我的代码:

#include <iostream>
using namespace std;
#include <ctime>
#include <cstdlib>

int main()
{
srand(time(0));
char computerChoice;
switch ( rand()%3)
    {
        case 0:
            computerChoice = 'R';
        case 1:
            computerChoice = 'P';
        case 2:
            computerChoice = 'S';
    }
cout << computerChoice;
}

每次运行程序时,我都会为 computerChoice 获得“S”,如果我循环该程序,我仍然会获得“S”。

4

2 回答 2

5

欢迎来到 StackOverflow!

您必须break;在每个case语句之后。有关更多信息,请参阅本教程

于 2013-10-26T01:51:55.817 回答
3

您得到相同的答案是因为您忘记了 break 语句,即

switch ( rand()%3)
{
    case 0:
        computerChoice = 'R';
        break;
    case 1:
        computerChoice = 'P';
        break;
    case 2:
        computerChoice = 'S';
        break;
}

}

于 2013-10-26T01:56:31.447 回答