C++11 这个简单的程序在语义上正确吗? 我是C++初学者(4天左右),我创建了一个小程序,它看起来像我想的那样工作。

C++11 这个简单的程序在语义上正确吗? 我是C++初学者(4天左右),我创建了一个小程序,它看起来像我想的那样工作。,c++11,semantics,C++11,Semantics,快速总结: 程序询问您的姓名。 然后要求两个数字相加。 显示答案。 然后询问是否要再次计算是/否 然而,我忍不住觉得,就格式而言,这是一场彻底的火车失事 特别是再次()函数。。。 在它内部,我通过调用另一个函数(如果条件为真)创建了一个循环。像这样: bool Again() { std::cout << "Would you like to calculate again y/n?\n"; std::string answer = ""; std::cin >> an

快速总结:

程序询问您的姓名。 然后要求两个数字相加。 显示答案。 然后询问是否要再次计算是/否

然而,我忍不住觉得,就格式而言,这是一场彻底的火车失事

特别是
再次()
函数。。。 在它内部,我通过调用另一个函数
(如果
条件为真)创建了一个循环。像这样:

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;
}
bool再次(){
std::cout>答案;
如果(答案[0]=='y'){
标准::cout

以我在中再次()的方式创建循环是正确的还是不正确的?如果是,有正确的方法吗

在一种不支持尾部递归的语言中,您的程序有可能导致堆栈溢出。我不建议您以编写代码的方式使用它


最好使用
while
循环或
do while
循环。在循环中,再做你需要做的任何事情。

有什么问题吗?像我在中再次做的那样创建循环是正确的还是不正确的()?如果是这样的话,有没有正确的方法?在我看来,这是错误的,因为当你说你将返回true或false时,返回0。这是一个就问题提出重点问题的地方,而不是通过询问你是否正确来学习编程。你所做的不是编写循环,而是一个递归程序(调用自身的函数)。您是否已经了解了循环(while/for)?此外,对于代码审阅,您应该在why need return 0上发布代码?或者使用
do while
loop@JohnJoe当然
#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;
}