代码之家  ›  专栏  ›  技术社区  ›  JoeZ

如果循环不工作。运行时显示重复cout。

  •  0
  • JoeZ  · 技术社区  · 6 年前

    我正在尝试制作一个随机数生成器猜测游戏,它将允许用户选择一个范围。在选择范围后,用户将尝试猜测数字,直到正确为止。我是c++新手,不明白为什么屏幕上有两个cout输出。我是c++新手,不知道为什么。我正在使用visual studio 17。

    #include "stdafx.h"
    #include <iostream>
    #include <time.h>
    #include <cstdlib>
    using namespace std;
    
    
    
    int main()
    {
        int userNum;
        char choice;
        int numattempts = 0;
        int randNumber;
        srand(time(0));
    
    
    
    
    cout << "Welcome to the number guessing game\n" << "Please choose what range you want to guess from\n" << " '1' = 0-20\n '2'= 0-50\n '3'= 0-100\n ";
    cin >> choice;
    
    
    
    if (choice == '1')
    {
    
        randNumber = 0 + rand() % 20;
    
        cout << "Enter a number between 0 and 20\n";
        cin >> userNum;
        cout << randNumber;
    
    
        do {
    
            if (userNum < randNumber)
            {
                cout << "Number is Higher\n";
                cin >> userNum;
            }
    
            else if (userNum > randNumber)
            {
                cout << "Number is Lower\n";
                cin >> userNum;
            }
    
            else (userNum == randNumber);
            {
                cout << "Congrats You got it!\n";
    
            }
    
        } while (userNum != randNumber);
    }
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Jeffry Evan    6 年前

    在最后一次检查中,您错过了另一个if,因此不应在那里放置分号。 试着调试一下,你会发现应该是这样的

    do {
    
            if (userNum < randNumber)
            {
                cout << "Number is Higher\n";
                cin >> userNum;
            }
            else if (userNum > randNumber)
            {
                cout << "Number is Lower\n";
                cin >> userNum;
            }
            else if(userNum == randNumber)
            {
                cout << "Congrats You got it!\n";
            }
    
        } while (userNum != randNumber);