2015-05-21 2 views
0

У меня есть функция, называемая move(), которую я разместил внутри цикла while. Эта функция позволяет пользователю выбрать целое число от 1 до 4 и возвращает это число. Цикл while выходит из цикла, если функция возвращает 3 или 4. Это мой код в основной функции.Повторный вызов функции внутри цикла while

while(move() < 3){ 
    if(move() == 2){ 
     cout << "You hate this fruit: "; 
    } 
    cout << "Enter name of fruit: "; 
    cin >> fruit; 
    cout << endl; 
} 

Моя проблема, когда я запускаю программу, если я выбрал 1 или 2, то функция перемещения() будет вызываться еще раз, прежде чем приступить к остальной части кода. Как решить эту проблему?

ответ

4

Назначить результат move() переменной, поэтому вы можете использовать его более одного раза.

int m; 
while ((m = move()) < 3) { 
    if (m == 2) { 
    // and so on 

или, по вкусу

for (int m = move(); m < 3; m = move()) { 
    if (m == 2) { 
    // and so on 
+0

Спасибо! Я забыл, что могу назначить функцию переменной. – Bargain23

+0

Вы не можете. –

Смежные вопросы