Как сгенерировать случайное число в swtich в c ++

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;
}

Я продолжаю получать "S" для computerChoice каждый раз, когда программа запускается, и если я зацикливаю программу, я все равно получаю "S".

  • 0
    Предпочитаю заголовок <random> . Кроме того, я полагаю, ваш компилятор может сообщить вам о проблеме с более высоким уровнем предупреждения.
  • 0
    Я не всегда рекомендую писать меньше кода, но в этом случае я думаю, что это оправдано - char computerChoice = "RPS"[rand()%3];
Показать ещё 1 комментарий
Теги:
random

2 ответа

5

Добро пожаловать в StackOverflow!

Вы должны break; после каждого case. См. Этот учебник для получения дополнительной информации.

3

Вы получаете тот же ответ, потому что вы забыли оператор break, т.е.

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

}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню