这个简单的程序在语义上是否正确?

时间:2017-08-23 03:28:44

标签: c++11 semantics

我是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;
}

提前谢谢你,知道什么不该做会帮助我在坏习惯之前解决这个坏习惯。

1 个答案:

答案 0 :(得分:1)

  

按照我在Again()中的方式创建循环是正确还是不正确?如果是的话,有没有正确的方法呢?

在不支持尾递归的语言中,您的程序可能会导致堆栈溢出。我建议你不要使用它来编码。

最好使用data: [require("./gifs/2.gif"), require("./gifs/3.gif"), require("./gifs/4.gif")] 循环或while循环。在循环中,做任何你需要做的事情再次