当前位置: 代码迷 >> J2SE >> while(stopFlag == false) 好 还是 while(!topFlag)解决方案
  详细解决方案

while(stopFlag == false) 好 还是 while(!topFlag)解决方案

热度:617   发布时间:2016-04-24 14:15:12.0
while(stopFlag == false) 好 还是 while(!topFlag)
while(stopFlag   ==   false)   好     还是   while(!topFlag)




------解决方案--------------------
我觉得都一样,一般while(!topFlag)这么写的多吧
------解决方案--------------------
应该是 while(!topFlag) 这个好,不用比较直接就可以得出结果的;

而 while(stopFlag == false),要取值再比较再得出结果的,不过比较直观一些。
------解决方案--------------------
仁者见仁,智者见智
------解决方案--------------------
while(!topFlag)

高手都是这样写的!
------解决方案--------------------
写程序讲解的是直观,用最直接简单的方法来表示一件事情

能用直接肯定 就不要用 双重否定来表示肯定,等等等等

所以“while(stopFlag == false) 好 还是 while(!topFlag)”

2个基本都算可以 但while(!topFlag)更适合理解一些
------解决方案--------------------
while(!topFlag)

------解决方案--------------------
如果是 while(stopFlag == false) 和 while(!topFlag)
结果是一样的,编译器会把这两个条件判断转换成
iload_ <n> //从局部变量区的第n个参数把stopFlag读出来,压入java栈
ifne m //如果不等于0,则跳转到标号为m的语句

但是,如果是 while(stopFlag == true) 和 while(topFlag)就不一样了
对于while(topFlag),编译后对应
iload_ <n>
ifeq m
对于while(stopFlag == true),编译后对应
iload_ <n>
iconst_1 // int常量1入栈,就是true
if_icmpne m //如果这两个int不相等则跳转到m. 可以看出,演变成了两个int进行比较

值得一提的是,由于虚拟机并不直接支持boolean, 所以编译器总是会用int表示boolean
------解决方案--------------------
这个可读性好while(!topFlag)
------解决方案--------------------
这种问题有必要研究吗?
------解决方案--------------------
while(stopFlag != true)
  相关解决方案