代码之家  ›  专栏  ›  技术社区  ›  Munerz

C++使用for循环迭代并调用其中的函数

  •  -2
  • Munerz  · 技术社区  · 7 年前

    因此,我一直在关注一些有关C++Udemy的教程,到目前为止,这些教程提供了非常丰富的信息,并且非常清晰,但是我有点被for函数如何调用另一个函数所困扰。

    所以我的第一个功能是;

    编辑 我已经包括了使用名称空间std,所以是字符串,而不是std::

    string getGuess()
    {
        cout << "Enter your guess" << endl;
        Guess = "";
        getLine(cin,Guess);
        cout << "Your guess was: " << Guess << endl; 
        return Guess;
    }
    

    然后对这个函数进行5次迭代,这样他们就能猜到我写的5次

    void play()
    {
        constexpr int guessTimes = 5;
        for(int i = 0; i<=guessTimes ; i++)
        {
            getGuess();
        }
    }
    

    现在,这一切对我来说都是有意义的,然而,本教程的下一部分是抽象;

    cout << "Your guess was: " << Guess << endl; 
    

    然后将for函数重写为;

    void play()
    {
        constexpr int guessTimes = 5;
        for(int i = 0; i<=guessTimes ; i++)
        {
            string Guess = getGuess();
            cout << "Your guess was: " << Guess << endl;
            cout << endl;
        }
    }
    

    我不太明白它现在是如何运行getGuess函数的,因为它现在被应用到一个新的字符串变量中,我发现这个变量本身很奇怪,如果能澄清一下这个过程的基本原理,我将不胜感激。

    1 回复  |  直到 7 年前
        1
  •  2
  •   john    7 年前

    你可能想得太多了。真的没什么好解释的。

    你觉得这很奇怪吗?

    string x = "hello";
    

    你觉得这很奇怪吗?

    string y = x;
    

    那你不应该觉得这很奇怪

    string z = f();
    

    "hello" , x f() 都是表达式的示例。对表达式求值以生成值。 f() 是调用函数的表达式 f . 函数的返回值 f 是表达式的值。使用值可以做的一件事是将其分配给另一个变量。