c++ - 如何在 if 语句后运行多个函数

标签 c++ if-statement boolean

我怎样才能让 return 和 cout 都作为 true 或 false 的结果发生?

gameState computerMove(gameState state) {
    if (sizeOfPile(state,1) > 0)
         return removeCoinsFromPile(state,1,1);
         cout << "I take 1 coin from Pile 1." << endl;
    else
          return removeCoinsFromPile(state,1,2);
          cout << "I take 1 coin from Pile 2" << endl;

最佳答案

C++ 使用“复合语句”的概念 - 由多个子语句组成的语句 - 用括号 {} 表示,就像您使用的一样为你的功能。

gameState computerMove(gameState state) {
}

您几乎可以在任何可以使用常规语句的地方使用复合语句:

int sum = 0;
for (int i = 0; i < 100; ++i)
    sum += i;

int sum = 0;
for (int i = 0; i < 100; ++i) {
    sum += i;
}

它们做同样的事情,但如果我们需要在 for 中添加更多指令,我们将它们添加到“{”之间。

关于此的一件重要事情:复合语句被认为具有“作用域”

int i = 1;
{
    int i = 2;
    std::cout << "inside, i = " << i << '\n';
}
std::cout << "outside, i = " << i << '\n';

程序员有时会用它来维护高级对象的生命周期。下面的代码打开一个文件并在我们处理完后立即释放它 - 因为当“istream”对象超出范围时就会发生这种情况。

std::string instructions;
{
    std::istream file("instructions.txt");
    file >> instructions;
} // <-- 'file' goes away, which closes the file.

但是:return 关键字会导致函数结束并返回一个值。所以你将不得不在你的 cout 之后这样做。

if (sizeOfPile(state,1) > 0) {
     cout << "I take 1 coin from Pile 1." << endl;
     return removeCoinsFromPile(state,1,1);
}

关于c++ - 如何在 if 语句后运行多个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20308785/

相关文章:

node.js - Node Express Jade - 复选框 boolean 值

python - 用来自两个不同列表的值替换列表的 boolean 值

c++ - 在 Windows 上使用 Eclipse 和 MinGW 设置 SDL2

c++ - C++ 中对 const Callable 的引用和对 Callable 的引用之间的区别

if-statement - 如何在批处理文件中的 "If"中使用多个条件?

linux - AWK 添加 if 语句以将零添加到数字范围 0 到 9(需要使用 AWK)

python - 在 Python 中是否有任何合法使用 list[True]、list[False] 的方法?

c++ - 如何重载 << 运算符以打印类成员?

c++ - 错误 C2143 : syntax error : missing ';' before 'template'

java - 将 Android 猜谜游戏限制为只能猜测 3 次