c ++乘法游戏分支语句问题

时间:2014-01-09 19:33:13

标签: c++ function if-statement multiplication

所以我正在研究这款基于数学控制台的游戏。要阅读我正在阅读的这本书的章节。

我希望能够在使用no选项后退出游戏。

问题是当使用no选项时,程序将循环一次然后退出。我希望程序立即退出。

我尝试添加一个else选项,但它一直给我错误代码:“(26):错误C2181:非法其他没有匹配,如果”

也有人可以告诉我如何添加切换类来为游戏添加更多菜单。这需要更多功能原型吗?

感谢您的所有帮助堆栈溢出,我还在学习如何使用分支语句!

    // multiplicationgame.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <time.h>

using namespace std;

void game();

int _tmain(int argc, _TCHAR* argv[])
{
    char choice = 0;
    game();
    while(choice != 'n')
    {

    cin >> choice;

    if (choice == 'y')
    cout << "\n\n";
    game();

    //else
    //cout << "later";
    //
    }


    return 0;
}

void game()
{
    srand(time(NULL));
    int a = rand() % 23;
    int b = rand() % 23;
    int c = (a * b);
    int d = 0;
    char choice = 0;

    cout <<"What does " << a << " * " << b << " equal?" << endl << endl << endl;
    cout << "\n";

    while(d != c)
    {
        if(d != c)
        {
        cout << "Please enter a number: ";
        cin >> d;
        }
    }
    cout << "\n\nCorrect! " << (a * b) << " is the answer!" << endl << endl;

    cout << "Play again (Y) or (N)?" << endl;

}

1 个答案:

答案 0 :(得分:2)

看起来你错过了一些大括号。改变这个块......

if (choice == 'y')
cout << "\n\n";
game();

......对此...

if (choice == 'y')
{
    cout << "\n\n";
    game();
}

此外,更改此声明可能会更好......

while(choice != 'n')
{
    …
}

......对此...

while(choice == 'y')
{
    …
}

这样,只有'y'才会被视为确认。如果是另一种方式,'n'以外的任何内容都将被视为确认。