Сравнение внутри цикла while c ++ - PullRequest
0 голосов
/ 24 апреля 2018

Я пытаюсь сделать, когда пользователь набирает номер, программа должна повторить это много раз, выбирая случайный, если Вот мой код

cin >> d;
c = 0;

while (c < d) {
    c = c++;
    num = (rand() % 3) + 1;
    if (num == 1) {
        system("start C:\\viewver\\vw");
        Sleep(2000);
    }
    else if (num == 2) {
        system("start C:\\viewver\\vw2");
        Sleep(2300);
    }
    else if (num == 3) {
        system("start C:\\viewver\\vw3");
        Sleep(1800);
    }

Он всегда выбирает сначала открыть, а затем останавливается.

1 Ответ

0 голосов
/ 24 апреля 2018

Используйте ==, а не =

if (num == 1) {
    system("start C:\\test\\vw");
    Sleep(2000);
}
else if (num == 2) {
    system("start C:\\test\\vw2");
    Sleep(2300);
}
else if (num == 3) {
    system("start C:\\test\\vw3");
    Sleep(1800);
}

== для сравнения, = для назначения


Причина, по которой он всегда выбирает первоеЭто связано с тем, что C++C) имеет значение truthy.Поэтому любое значение, отличное от 0, считается истинным, тогда как значения, оцениваемые в 0, считаются falsy.

В исходном коде, когда вы присваиваете num значение 1, значениеnum это правда, поэтому эта ветка всегда берется

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...