Topic: 程序为什么会失去控制?for(byte i=126;i<130;i++)

  Print this page

1.程序为什么会失去控制?for(byte i=126;i<130;i++) Copy to clipboard
Posted by: develop8
Posted on: 2006-06-23 07:48

//为什么程序失去了控制????
//太不理解了,我以为循环从120开始到129就停止,
//可不可思议的事情发生了,请对电脑基础知识深的人给我解答,谢谢!
class arithmatic{
public static void main(String[]args){
// byte MAX_VALUE 127
//byte MIN_VALUE -128
for(byte i=126;i<130;i++)
System.out.println(i+"="+i);
}
}

2.Re:程序为什么会失去控制???? [Re: develop8] Copy to clipboard
Posted by: Skybus
Posted on: 2006-06-23 08:41

byte类型的变量最大值也不会超过128,所以你的循环是不会停止的

3.Re:程序为什么会失去控制?for(byte i=126;i<130;i++) [Re: develop8] Copy to clipboard
Posted by: xatm092
Posted on: 2006-06-23 12:19

byte的范围是从-128到127
你的代码里已经写明了呀...汗

byte型的127再加1就又变成-128了.

4.Re:程序为什么会失去控制?for(byte i=126;i<130;i++) [Re: develop8] Copy to clipboard
Posted by: develop8
Posted on: 2006-06-24 06:40

但是循环语句里明明是限制了执行的次数啊??
越界的话,就不听系统的命令了吗??/

5.Re:程序为什么会失去控制?for(byte i=126;i<130;i++) [Re: develop8] Copy to clipboard
Posted by: colo007
Posted on: 2006-06-24 12:22

develop8 wrote:
但是循环语句里明明是限制了执行的次数啊??
越界的话,就不听系统的命令了吗??/

也就是说,你设置的那个限制次数根本不会达到条件的。i永远不会大于130。

6.Re:程序为什么会失去控制?for(byte i=126;i<130;i++) [Re: develop8] Copy to clipboard
Posted by: develop8
Posted on: 2006-06-25 06:38

啊,知道了。

7.Re:程序为什么会失去控制?for(byte i=126;i<130;i++) [Re: develop8] Copy to clipboard
Posted by: tomcatexpert
Posted on: 2006-06-25 22:12

典型的错误之一

Integer.MAX_VALUE + 1 < Integer.MAX_VALUE 是正确的

8.Re:程序为什么会失去控制?for(byte i=126;i<130;i++) [Re: develop8] Copy to clipboard
Posted by: jerryikitty
Posted on: 2006-06-27 10:55

楼上几位正解

9.Re:程序为什么会失去控制?for(byte i=126;i<130;i++) [Re: develop8] Copy to clipboard
Posted by: develop8
Posted on: 2006-07-02 06:27

好象明白了。

10.Re:程序为什么会失去控制?for(byte i=126;i<130;i++) [Re: develop8] Copy to clipboard
Posted by: binge
Posted on: 2006-07-02 20:51

自已都写出来了

11.Re:程序为什么会失去控制?for(byte i=126;i<130;i++) [Re: xatm092] Copy to clipboard
Posted by: sunjavaduke
Posted on: 2006-07-08 23:00

xatm092 wrote:
byte的范围是从-128到127
你的代码里已经写明了呀...汗

byte型的127再加1就又变成-128了.


class arithmatic{
public static void main(String[]args){
// byte MAX_VALUE 127
//byte MIN_VALUE -128
for(byte i=126;i<130;i++)
System.out.println("i="+i);
}
}

runs results~

12.Re:程序为什么会失去控制?for(byte i=126;i<130;i++) [Re: develop8] Copy to clipboard
Posted by: blueshoot
Posted on: 2006-07-13 19:14

使用byte类型在此程序中将永远无法达到130,即127+1=-128〈130
所以此程序将是个无限循环


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923