无论我放Y还是N,我的节目在我回答“更多的肉?”之后结束了。我期待它将响应返回给循环。
#include <iostream>
using namespace std;
int main()
{
char response = 'y';
double price;
double total = 0;
while (response == 'Y' || 'y') {
cout << "Please enter price of meat: ";
cin >> price;
total += price;
cout << "More meat? (Y/N)";
cin >> response;
return response;
}
cout << "Your total is: " << total;
return 0;
}
答案 0 :(得分:7)
while (response == 'Y' || 'y') {
应该是
while (response == 'Y' || response == 'y') {
另外
return response;
退出整个函数(main
)。你不需要它。
我期待它将响应返回到循环
您不需要(return
用于从函数返回值,终止其执行)。因此,在循环的}
之后,下一个执行的行将是while ( condition ) ...
。如果condition
被评估为false
,则循环将停止,下一个执行的行将是循环}
之后的那一行。
答案 1 :(得分:2)
您的缩进内容已被破坏,您的while()
测试也是如此,并且您有一个虚假的return
声明:
#include <iostream>
using namespace std;
int main()
{
char response = 'y';
double price;
double total = 0;
while (response == 'Y' || response == 'y') {
cout << "Please enter price of meat: ";
cin >> price;
total += price;
cout << "More meat? (Y/N)";
cin >> response;
} // end while
cout << "Your total is: " << total;
return 0;
} // end main()
(使用do ... while()
会稍微整理一下,您也不需要将response
初始化为'y'
)。