SonarQube代码检查出现Add an end condition to this loop的bug

详细描述

Add an end condition to this loop翻译就是向这个循环添加一个结束条件。

loops should not be infinite 循环不应该是无限的。

通过SonarQube检查出来这两个问题,一般都是发生在使用while(true)或者do while,for(;;)做无限循环里面,由于没用给他设置终止条件导致了扫描出现这个bug

解决方案

官方已经给我们提供了解决方案,其实就是加上一个兼容条件,理论上还是无限循环,下面主要说一下java的,其他语言的前去对应的分类下查看

前往查看

java参考官方提供改动的代码方法如下:

int j;
while (true) { // reachable end condition added
  j++;
  if (j  == Integer.MIN_VALUE) {  // true at Integer.MAX_VALUE +1
    break;
  }
}

int k;
boolean b = true;
while (b) {
  k++;
  b = k < Integer.MAX_VALUE;
}

 

图片[1]-SonarQube代码检查出现Add an end condition to this loop的bug-QQ沐编程

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享