【问题标题】:C++ curly bracketsC++ 花括号
【发布时间】:2018-05-02 09:13:53
【问题描述】:

我想知道我在互联网上看到的一些代码。我确实尝试谷歌等,但我没有找到回答我问题的解释。

这是我编写的一个示例。

bool exe() 
{

int ret = Geterror();//if error it returns something bigger than 0
if (ret != 0)
    return false;

ret = Geterror();//if error it returns something bigger than 0
if (ret != 0)
    return false;

return true; 
}

1) 我的第一个问题是使用有什么不同

if (ret != 0)
    return false;

if (ret != 0)
{ 
    return false;
}

2) 我不知道我的想法是否正确,但是如果 ret 大于 1,if(ret != 0) 之后的行是唯一要运行的行吗?还是与位置或间距有关?罪 ret = Geterror();如果 ret 为 0,将运行。

【问题讨论】:

  • 对不起。请阅读一些非常基本的 C++ 书籍或教程。 { ... } 用于对将在 if - condition is true 时执行的所有语句进行分组 - 如果您将它们关闭,则只有 if 之后的单行将被执行
  • 教程可能很危险。坚持看书,直到你学会了足够的知识,能够可靠地分辨好教程和坏教程。 The Definitive C++ Book Guide and List
  • @PatrickArtner 我想我只是没有很好地解释我的问题。是的,这就是我一直在寻找的答案——>“如果你把它们关掉,那么只有 if 之后的一行会被执行”

标签: c++ if-statement return brackets


【解决方案1】:

回答你的第一个问题。可以这么说,通过在一行中执行 if 语句,您将被限制为一种操作。

if(ret != 0) return false;

使用大括号时,您正在声明一个带有代码操作的块。

if(ret != 0) {
     /* do other stuff here */
     return false;
}

使用单行语句和块语句没有实际区别。

关于你的第二个问题,请参考我的第一行代码。

if(ret != 0) 
    return false;

等价于;

if(ret != 0) return false;

语句用分号分隔,告诉编译器语句已经结束,中间的空格是微不足道的。

【讨论】:

    猜你喜欢
    • 2014-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 2019-01-26
    • 2012-01-18
    • 1970-01-01
    相关资源
    最近更新 更多