这是在vc和eclipse里做的实验,同样的表达式,得出不一样的结果,输出差异:c 根本没有输出,但是java每运行一次就输出一次loop?有哪位知道原理的吗?
#include <stdio.h>void main(){ int b=1; while(++b>0)
;
printf("看你输出不");}c里面什么都不做就只占系统的资源,什么也不输出。public static void main(String[] args) {
// TODO Auto-generated method stub int b=1;
while(++b>0)
;
System.out.println("loop?");
}java里面还输出一次loop? 什么原因?
#include <stdio.h>void main(){ int b=1; while(++b>0)
;
printf("看你输出不");}c里面什么都不做就只占系统的资源,什么也不输出。public static void main(String[] args) {
// TODO Auto-generated method stub int b=1;
while(++b>0)
;
System.out.println("loop?");
}java里面还输出一次loop? 什么原因?
解决方案 »
- 在swing上画图的问题
- 一道简单集合题!请大家帮帮忙!
- JAVA连接MySQL错误
- 如何在java上再进一步
- 有关java中报表的应用..
- 急!!大家看看我写的程序错哪里了?
- 社会考生怎样报考四六级?
- 我们买了正版的软件,而厂商在我们的软件留下一个条幅,做它自己的广告,这合不合法?就象我买的金山词霸上面有Canon的广告。大家讨论一下
- 我的jbuilder4在windows server 2000 每次make and run 后就在里面出现光标乱了
- 初学Java遇到难题,求救
- 对于String类的对象克隆问题
- 求教专家!!!JAVA程序产生的致命错误,自己生成一个hs_err_pid***.log文件!!!请教是哪里出问题了?
2147483647,-2147483648
看你输出不
eclipse里面最后打印的结果(我多加了一行,打印b-1和b):
2147483647,-2147483648
loop
原因是,b是int型的,++b到b的最大值后发生了溢出(2147483647->,-2147483648),所以循环就结束了,因此就打印出了上面的结果。
从理论上来说,应该是发生5L说的情况,难道你的vc环境有问题?
你那while(true)就可以了。
输出很慢,cmd下等了一会才有结果