我是C ++的初学者,我正在做一个do / while循环练习,我很难识别它的条件,更不用说它没有正确循环了。你能给我一个如何解决这样一个简单问题的良好基础吗?我想尝试使用字符串来满足do / while循环的条件。
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main ()
{
double mean = 0;
string continuer;
do
{
cout << "Do you want to proceed?" << endl;
getline (cin, continuer);
cout << "something" << endl;
cin >> mean;
}
while (continuer == "Y" || continuer == "y");
return 0;
}
答案 0 :(得分:1)
我从您的问题和评论中收集到的内容,您希望按照用户的意愿迭代循环。
你只需要一个char
变量,就像这样。
string input ;
int number = 0 ;
do
{
cout << "Please enter a number" << endl ;
cin >> number ;
cout << "If you want to continue, Press Y" << endl ;
cin >> input ;
} while (input == "Y" || input == "y") ;
此do-while循环将至少执行一次,因为在循环执行结束时会检查条件。因此,即使用户在第一次询问时没有按Y,该循环也会被执行一次。在此之后,只要满足条件,它就会继续。
在此处详细了解do-while循环。
答案 1 :(得分:0)
你看到了什么?循环体应该至少执行一次。那会发生吗?
此外,Continuer可以长于一个字符,例如“Y \ n”。做那个测试。
以下是我要做的事情:
#include <string>
#include <sstream>
using namespace std;
int main ()
{
double number = 0;
string continuer;
int loop = 0
do
{
cout << "Do you want to proceed?" << endl;
getline (cin, number);
cout << "something" << endl;
cin>> mean;
getline (cin, continuer);
cout << "Your answer was '" << continuer << "'." << endl;
loop = strcmp("Y", continuer);
if (loop != 0) strcmp("y", continuer);
if (loop == 0) cout << "Your choice is to stop." << endl;
else cout << "Your choice is to continue." << endl;
} while (loop == 0);
cout << "Bye" << endl;
return 0;
}
尽可能明确,直到您对所使用的语言和算法充满信心。它更容易看到发生了什么,当它工作时,很容易删除'cout'线。