美文网首页
条件语句

条件语句

作者: 维维_iOS | 来源:发表于2016-11-23 14:04 被阅读0次

条件语句体应该总是被大括号包围。尽管有时候你可以不使用大括号(比如,条件语句体只有一行内容),但是这样做会带来问题隐患。比如,增加一行代码时,你可能会误以为它是 if 语句体里面的。此外,更危险的是,如果把 if 后面的那行代码注释掉,之后的一行代码会成为 if 语句里的代码。
推荐:

if (!error) {
    return success;
 }

不推荐:

if (!error)
    return success;

if (!error) return success;

在 2014年2月 苹果的 SSL/TLS 实现里面发现了知名的 goto fail 错误。
代码在这里:

static OSStatus
SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa, SSLBuffer signedParams, uint8_t *signature, UInt16 signatureLen)
{
  OSStatus err; 
  ...
  if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
    goto fail;
  if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
    goto fail;
    goto fail;
  if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
    goto fail;
    ...

 fail:
  SSLFreeBuffer(&signedHashes); 
  SSLFreeBuffer(&hashCtx);
  return err;
}

显而易见,这里有没有括号包围的2行连续的 goto fail; 。我们当然不希望写出上面的代码导致错误。
此外,在其他条件语句里面也应该按照这种风格统一,这样更便于检查。

相关文章

  • Java流程控制2

    条件语句 if条件语句,switch多分支语句 if条件语句总 if条件句中又分为:if条件语句,if…else,...

  • Javascript 基础:语句

    1.条件语句 if(条件){语句}if(条件){语句1}else{语句2}if(条件){语句1}else if(条...

  • 语句

    条件语句 if (条件){语句1}else{语句2} if (条件){语句1}else if(条件2){语句2}e...

  • 07-Go语言条件语句

    if条件语句 if条件语句三种格式 if条件语句结构特点 switch条件语句 语句格式 switch语句注意点

  • 2018-12-11

    流程控制 流程控制语句:--条件判断语句--条件分支语句--循环语句 条件判断语句(if语句) 语法:if(条件表...

  • JavaScript(第三天)—爱创课堂专业前端培训

    一、条件语句 条件语句格式一: if(条件表达式){ 条件表达式成立执行的语句; } 条件语句格式二: if(条件...

  • 条件判断语句、多重条件判断语句

    条件判断语句 多重条件判断语句 if语句语法三:if(条件表达式){语句...}else if(条件表达式){语句...

  • 流程控制

    条件语句 if条件语句 *if条件语句主要用于告知程序当某一个条件成立时,须执行满足该条件的相关语句,if条件语句...

  • 第四节: JavaScript条件分支语句

    一. 条件分支语句 条件分支语句,也叫作条件判断语句,就是根据某种条件执行某些语句,不执行某些语句。 JS中条件...

  • 第四节 JavaScript条件分支语句

    一. 条件分支语句 条件分支语句,也叫作条件判断语句,就是根据某种条件执行某些语句,不执行某些语句。 JS中条件...

网友评论

      本文标题:条件语句

      本文链接:https://www.haomeiwen.com/subject/vjhvpttx.html