我怎样才能让 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/