0

在我的代码结束时,我想检查用户是否想再试一次。所以我让他们输入 1。我想检查输入是否为 1,如果是,我再次运行程序。

问题是,它忽略了条件并总是决定再次运行程序。

int input = readInt("1 = yes, 0 = no: ");
if (input == 1); {
    run();
}

即使输入了一个不同于 1 的数字,它仍然执行run();。如果输入数字为 1,我只希望它这样做。

我显然犯了一个菜鸟错误,但我似乎无法弄清楚它是什么。任何指针?

4

2 回答 2

3

您的 if 语句将被阻塞;if (input == 1); 实际上您的run 方法如下所示:

{
run();
}

这将始终执行。

于 2013-11-02T14:37:58.637 回答
3

那是因为函数 run 无论如何都是可以访问的,请注意“;”

你的代码

int input = readInt("1 = yes, 0 = no: ");
if (input == 1); { // checks if input is 1, executes run anyhow
    run();
}

改为这样做

int input = readInt("1 = yes, 0 = no: ");
if (input == 1) { // checks if input is 1, then executes run
    run();
}
于 2013-11-02T14:35:55.483 回答