while(true){ i++;} 如何不会陷入死循环
来源:互联网 发布:nginx限制目录访问 编辑:程序博客网 时间:2024/04/27 21:59
一日晚,突发奇想,想到一道可能在面试中出现的题目(目前还没见过,自己想到的):
while(true){ i++;}请问如何不会陷入死循环,要求不能在大括号之间添加任何语句……
先不要看我后面的内容,你能想到几个答案?
当时把这个题目放到了自己qq签名上,并且借用腾讯的漂流瓶发了12个瓶子,后来签名上有两个同学回应了下,漂流瓶的回应全部没有参考价值,这也说明了有时候咨询问题对象选择的重要性。
自己能想到的答案:
1、使用外部嵌套,使该循环永远执行不了(这点大学一个宿舍同学也想到了);
if(1==2){while(true){ i++;}}
2、直接不用管它,因为i既然能够加加了,那么i一定是整型的变量了,整型的变量都有一个范围的,超过他的范围就会溢出异常了,这宿舍另一个同学也在qq上跟我说过一次;
不过经过我的简单测试,感觉这么让他执行到超出范围的话,不知道要等到什么时候呢,这个答案不怎么算正确的;
3、修改while条件,使循环不能执行:
while(true && false){ i++;}
4、第三个的解决办法中,由此我倒是想到了一个办法,让这个循环体不但不会死循环而且还会执行一定的循环次数:
例如:while(true && i < 5){ i++;}
5、继续,还可以把while条件中的true直接修改为false,这样更直接而且有效;
6、继续,或者干脆将while也修改一下,直接将while修改为if也是一个很好的解决办法,而且也很有效;
7、继续,其实这个题目并没有标明这个循环是在那种编译环境下执行的,起码就我所知的环境,就是这种写法在c++、java、c#、javascript下都是可以执行的,所以我们直接就可以把i定义为一个var i = true 然后跟着这个题目中的语句块while(true){ i++;};
而我们知道,js是解释执行的,所以不存在编译报错的问题,而这样写的话,就会使该js是执行时报错,直接不会出现死循环;
8、其他的所有修改过后直接编译就不通过的在此不作罗列……
while(true){ i++;}请问如何不会陷入死循环,要求不能在大括号之间添加任何语句……
你还能想到几个答案?
- while(true){ i++;} 如何不会陷入死循环
- while(true)如何退出循环
- fclose 陷入死循环
- hashmap陷入get方法陷入死循环
- C#中“貌似”跳出while(true)死循环
- 巧用while(true){ }死循环的一个小例子
- 为什么会陷入死循环
- 为什么会陷入死循环
- While(true)无限循环
- 程序陷入死循环问题的解决
- Perl while 死循环
- while死循环
- while 死循环
- 加载默认图片,如何避免img标签陷入onerror事件死循环
- while 死循环->小坑
- shell死循环(while&&for)
- 下面程序为什么没有一直陷入main的while(1)循环?(多线程在作怪)
- 做了个软连接,结果,陷入了死循环
- 乔布斯死因之情感三大定律的分析
- 最长单调"连续"递增子序列
- VS2010安装部署打包说明(快捷方式创建和卸载设置)
- eclipse svn 更新地址
- DLL/EXE查看工具Dumpbin
- while(true){ i++;} 如何不会陷入死循环
- DLL Program
- Spring HTTP invoker简介
- TC35学习3----在STM32f103下写的TCDrive
- 乔布斯经典语录
- 各种字符串Hash函数比较
- 17道经典海量数据面试题整理
- 详解Java String字符串对象的创建及管理(1)
- 详解Java String字符串对象的创建及管理(2)