是否使用return()

时间:2018-01-20 19:00:21

标签: c++

我是编码c ++的初学者,我想创建一个程序,用户必须输入符合某些要求的条件。如果用户输入的年龄小于或等于0,当询问年龄时,如何让输出返回原始问题?或者以下代码是否正确? 1

1 个答案:

答案 0 :(得分:1)

在向Stack Overflow提问之前,您应该阅读手册,但这是您的第一个问题,我将指导您朝着正确的方向前进。这些是您应该阅读以解决问题的链接:

https://www.cprogramming.com/tutorial/lesson2.html

https://www.cprogramming.com/tutorial/lesson3.html

https://www.tutorialspoint.com/cplusplus/cpp_basic_input_output.htm

现在,至于您的代码,我将修改您的代码:

int donorAge = 0;
while (donorAge <= 0) {
  std::cout << "Age: ";
  std::cin >> donorAge;
  if (donorAge <= 0) {
    std::cout << "--- You must enter a valid age.\n";
  }
}

if语句只运行一次,但while循环继续运行,直到满足条件。你需要第二个这个。

注意: 如果用户输入字符或字符串,此解决方案将失败,但您不必担心当前级别,只是想一想。

你不应该是using namespace std

此外,以您的方式编写if语句是不好的做法,例如: if ( donorAge <= 0)应为if (donorAge <= 0)。注意到我擦除了那个流浪的空间?

另一件事,std::cin.ignore()并没有“扔掉”。它实际上做的是忽略流的第一个字符(在这种情况下是终端或命令行)。当您按Enter键时,您正在输入的换行符'\n',您将使用std::cin.ignore()忽略它。在没有必要将数字作为输入时,您不必这样做,但是当您开始使用字符串时,有必要这样做。

再次阅读手册并在询问有关SO的问题之前进行研究。这就是为什么你有许多downvotes,也很可能我会回答你的问题。