【发布时间】:2013-02-01 17:08:39
【问题描述】:
我正在尝试编写一个计算程序,当它运行一次时会询问用户是否希望进行另一次计算。这具有在主函数的适当位置调用的单独函数的形式:
char repeatcalc(char y){
cout << "Would you like to perform another calculation? [Y]es/[N]o" << endl;
cin >> y;
if(y == 'Y' || y == 'y'){
return y == 'y';
}
else if(y == 'N' || y == 'n'){
return y == 'n';
}
else{
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
repeatcalc(y);
}
}
这个想法是,用户点击一个按钮,函数返回一个“y”、一个“n”或重复自身。然后,这会反馈到 main 函数中的 while 循环,如果返回“y”则重复该循环,如果返回“n”则结束。
The repeat section in the function above works in the main code, as does the 'y' return, but when 'n' is selected, it seems to return a 'y' anyway.
我遗漏了一些明显的东西,但我不知道是什么!有什么建议吗?
谢谢。
【问题讨论】:
-
您的退货单已关闭。
-
你返回一个布尔值..
-
你永远不会从最后一个
else块返回值。 -
什么是需要使这个递归?
-
并且返回是比较,而不是分配
标签: c++ function while-loop character