首页 > 其他 > 详细

LeetCode做题笔记(3)——if嵌套if时不加花括号{}导致的bug

时间:2020-04-20 21:20:02      阅读:78      评论:0      收藏:0      [点我收藏+]

本篇文章基于LeetCode 题目#485总结,主要是记录了if嵌套if时不加花括号引起的bug

485. 最大连续1的个数

题目类型

数组

做题总结

  • 关于if语句与花括号的省略:如下的遍历写法是比较简洁的:
    for( i = 0; i < n; ++i )
      if( nums[i] == 0 )
          ++m;
    这里省略了for循环的花括号,因为其内部只有一条语句,if没加花括号也是同样的原理。但是以下代码就有问题了:
    for( i = 0; i < numsSize; ++i )
    {
      if( nums[i] == 1 )
          if( ++n > max )
              max = n;
      else
          n = 0;
    }
    在这里,if( nums[i] == 1 )没有加花括号,但由于else与最近的if对应,导致其对应的else被内部嵌套的if( ++n > max )所占有,最终导致程序运行结果不正确。
  • 基于以上分析,得出结论:if中如果嵌套有子if语句,并且后面有else时,必须加花括号!

LeetCode做题笔记(3)——if嵌套if时不加花括号{}导致的bug

原文:https://www.cnblogs.com/uestcliming666/p/12739858.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!