微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在C ++中使用卷曲箭头的正确方法是什么?

如何解决在C ++中使用卷曲箭头的正确方法是什么?

for(int i = 10 ; b >= i;i++){
        if(i%2 == 0)
            cout << "even" << endl;
        else
            cout << "odd" << endl;
        
    }

for(int i = 10 ; b >= i;i++){
        if(i%2 == 0){
            cout << "even" << endl;
        }else{
            cout << "odd" << endl;
        }
    }

这两个代码的唯一区别在于if else语句的花括号,只是想知道何时使用花括号,何时不使用花括号?


解决方法

它们被称为braces or curly brackets,不要与~>在某些语言中的“卷曲箭头”相混淆。

在C和继承C ++中,它们在单行if语句上是可选的,但是由于省略了许多错误,因此建议您原则上使用它们即使它们是多余的。

像这样的错误很容易忽略:

if ((err = SSLHashSHA1.update(&hashCtx,&signedParams)) != 0)
    goto fail;
    goto fail;

goto似乎是有条件的,但不是,它只是掉线了。这是巨大的OpenSSL bug,令所有人感到惊讶,如果资深的开发人员可以将其弄乱,您也可以。

第二种形式是最可靠,最不明确的形式,尤其是按照典型惯例进行格式化时:

for (int i = 10 ; b >= i;i++) {
    if (i%2 == 0) {
        cout << "even" << endl;
    }
    else {
        cout << "odd" << endl;
    }
}

for是语句,而不是函数,因此语法为for (...),带有空格。函数没有空格,例如f(...)。省略空格意味着for是一个函数,而绝对不是。 ifwhile等也是如此。

值得注意的是,原始代码实际上可以简化为:

for (int i = 10 ; b >= i;i++)
    if (i%2 == 0)
        cout << "even" << endl;
    else
        cout << "odd" << endl;
    

由于if是单个语句,即使附加了else子句。

同样,不建议这样做,因为关于一条语句和不一条语句的规则可能会造成混淆。

,

如果'if','else'或'for'结构内部只有一个语句,则可以决定不使用大括号。但是,我建议使用它们以提高代码的可读性。

,

Google提供了详细的C++ style guide,可以为您提供帮助。特别是说

通常,单行语句不需要花括号,但是如果您愿意,可以使用花括号;带有复杂条件或语句的条件或循环语句使用花括号可能更易读。有些项目要求if必须始终带有大括号。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。