这个简单的程序在语义上是否正确?
Is this simple program semantically correct?
我是 C++ 的初学者(我的课程大约 4 天)我创建了一个小程序,它似乎按照我想要的方式工作。
快速总结:
程序询问您的姓名。
然后要求两个数字相加。
显示答案。
然后询问你是否要再次计算 y/n.
但是,我不禁觉得它在格式方面完全是个废墟。
特别是 Again()
函数...
在其中,我通过调用另一个函数 if
创建了一个循环,条件为真。像这样:
bool Again() {
std::cout << "Would you like to calculate again y/n?\n";
std::string answer = "";
std::cin >> answer;
if (answer[0] == 'y') {
std::cout << "Cool lets do it then \n";
PickTwo();
Again();
}
else {
std::cout << "alright, goodbye\n";
}
return 0;
}
按照我在 Again() 中的方式创建循环是否合适?
如果是这样,有没有正确的方法?
这是整个程序:
#include <iostream>
#include <string>
void Greetings();
int PickTwo();
bool Again();
int main() {
Greetings();
PickTwo();
Again();
system("pause");
return 0;
}
void Greetings() {
std::cout << "Hi my name is Program, we're going to do something today. \n";
std::cout << "Whats your name?\n";
std::string Name;
std::getline(std::cin, Name);
std::cout << "Hi " << Name << ", we're going to try to do math\n";
return;
}
int PickTwo() {
std::cout << "Please pick the numbers to be added\n";
int firstNumber;
std::cin >> firstNumber;
int secondNumber;
std::cin >> secondNumber;
int Answer = firstNumber + secondNumber;
std::cout << "This are your numbers " << firstNumber << " and " << secondNumber << std::endl;
std::cout << "If we add them you have " << Answer << std::endl;
return Answer;
}
bool Again() {
std::cout << "Would you like to calculate again y/n?\n";
std::string answer = "";
std::cin >> answer;
if (answer[0] == 'y') {
std::cout << "Cool lets do it then \n";
PickTwo();
Again();
}
else {
std::cout << "alright, goodbye\n";
}
return 0;
}
提前谢谢你,知道什么不能做会帮助我在坏习惯变得更糟之前改掉它们。
Is it proper or improper to create a loop the way i did in Again() ? if so, is there a right way to do it ?
在不支持尾递归的语言中,你的程序有可能导致栈溢出。我不建议按照您编码的方式使用它。
最好使用while
循环或do-while
循环。在循环中,再.
做任何你需要做的事情
我是 C++ 的初学者(我的课程大约 4 天)我创建了一个小程序,它似乎按照我想要的方式工作。
快速总结:
程序询问您的姓名。 然后要求两个数字相加。 显示答案。 然后询问你是否要再次计算 y/n.
但是,我不禁觉得它在格式方面完全是个废墟。
特别是 Again()
函数...
在其中,我通过调用另一个函数 if
创建了一个循环,条件为真。像这样:
bool Again() {
std::cout << "Would you like to calculate again y/n?\n";
std::string answer = "";
std::cin >> answer;
if (answer[0] == 'y') {
std::cout << "Cool lets do it then \n";
PickTwo();
Again();
}
else {
std::cout << "alright, goodbye\n";
}
return 0;
}
按照我在 Again() 中的方式创建循环是否合适? 如果是这样,有没有正确的方法?
这是整个程序:
#include <iostream>
#include <string>
void Greetings();
int PickTwo();
bool Again();
int main() {
Greetings();
PickTwo();
Again();
system("pause");
return 0;
}
void Greetings() {
std::cout << "Hi my name is Program, we're going to do something today. \n";
std::cout << "Whats your name?\n";
std::string Name;
std::getline(std::cin, Name);
std::cout << "Hi " << Name << ", we're going to try to do math\n";
return;
}
int PickTwo() {
std::cout << "Please pick the numbers to be added\n";
int firstNumber;
std::cin >> firstNumber;
int secondNumber;
std::cin >> secondNumber;
int Answer = firstNumber + secondNumber;
std::cout << "This are your numbers " << firstNumber << " and " << secondNumber << std::endl;
std::cout << "If we add them you have " << Answer << std::endl;
return Answer;
}
bool Again() {
std::cout << "Would you like to calculate again y/n?\n";
std::string answer = "";
std::cin >> answer;
if (answer[0] == 'y') {
std::cout << "Cool lets do it then \n";
PickTwo();
Again();
}
else {
std::cout << "alright, goodbye\n";
}
return 0;
}
提前谢谢你,知道什么不能做会帮助我在坏习惯变得更糟之前改掉它们。
Is it proper or improper to create a loop the way i did in Again() ? if so, is there a right way to do it ?
在不支持尾递归的语言中,你的程序有可能导致栈溢出。我不建议按照您编码的方式使用它。
最好使用while
循环或do-while
循环。在循环中,再.