gpt4 book ai didi

c++ - 我应该如何写一个 Eloquent continue?

转载 作者:太空狗 更新时间:2023-10-29 19:58:57 24 4
gpt4 key购买 nike

所以在我的类里面经常会提到我需要一个程序,让用户可以多次执行操作。

所以我写了类似的东西

boolean continue=true;

while (continue) {
//do code
boolean isAnswerGood=false;
while (!isAnswerGood) {
cout << "Do you wish to continue" << endl;
string answer;
getline(cin, answer);
if (answer=="y") //or something else
isAnswerGood=true;
else if (answer=="n") {
isAnswerGood=true;
continue=false;
} else
cout << "That wasnt "y" or "n" please type something again" << endl;
}
}

这看起来很臃肿,而且为了这么简单的事情写了很多代码。我愿意跳出框框思考这个问题,所以如果有人能给我一个更好的解决方案的线索,我将不胜感激。

最佳答案

将其分解为单独的函数。 (几乎总是“我如何写出 Eloquent ...?”的答案)

例如:

do {
// something
} while (UserWantsMore());

/////////

bool UserWantsMore() {
std::string answer = GetAnswer("Continue?");
while (!GoodAnswer(answer))
answer = GetAnswer("Please answer 'yes' or 'no'!");
return IsAnswerYes(answer);
}

bool GoodAnswer(const std::string& answer) {
return !answer.empty() && (answer[0] == 'y' || answer[0] == 'n');
}

bool IsAnswerYes(const std::string& answer) {
return !answer.empty() && answer[0] == 'y';
}

std::string GetAnswer(const char* prompt) {
std::cout << prompt << std::cend;
std::string answer;
std::getline(std::cin, answer);
return answer;
}

关于c++ - 我应该如何写一个 Eloquent continue?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16181484/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com