黑马程序员技术交流社区
标题:
大哥些帮我看看这个程序怎么会自己加上了,很是不了解
[打印本页]
作者:
覃勇
时间:
2013-5-2 11:02
标题:
大哥些帮我看看这个程序怎么会自己加上了,很是不了解
class a
{
private int a=100;
public void run()
{
if(a>0)
{
while(true)
{
System.out.println("为什么"+"-------"+(a--));
}
}
}
}
class test
{
public static void main(String[] args)
{
a t = new a();
t.run();
}
复制代码
疑惑:这个程序减完之后为什么又直接一直在加
作者:
覃勇
时间:
2013-5-2 11:07
class a
{
private int a=100;
public void run()
{
while(true)
{
if(a>0)
{
System.out.println("为什么"+"-------"+(a--));
}
}
}
}
class test
{
public static void main(String[] args)
{
a t = new a();
t.run();
}
}
复制代码
而这样减完之后是不会继续加下去的
作者:
bianbian18
时间:
2013-5-2 11:16
本帖最后由 bianbian18 于 2013-5-2 11:17 编辑
while(true)这个循环的条件永远是true,死循环呀
while条件为true,循环继续;为false结束循环。给while也加个可以为false的条件就可以了
比如第一个while(a<=0)...{:soso_e113:}
作者:
askyle
时间:
2013-5-2 11:21
私有a=100 第一个:因为if 在前面说明a大于0时是真的那么他执行 ”System.out.println("为什么"+"-------"+(a--));“ (这里出现BUG然后进入死循环) 第二个:因为while(true)//是真的 就开始执行if(a>0)(a大于0)所以不断减
作者:
阿彪
时间:
2013-5-2 11:49
class a
{
private int a=100;
public void run()
{
//只循环100以内的
while(a>0){//A点
System.out.println("为什么"+"-------"+(a--));//当a--到0的时候,A点不成立,则循环结束。
}
}
}
class Test
{
public static void main(String[] args)
{
a t = new a();
t.run();
}
}
作者:
覃勇
时间:
2013-5-2 21:17
我自己来回答吧!
class a
{
private int a=100;
public void run()
{
while(true)
{
if(a>0)
{
System.out.println("为什么"+"-------"+(a--));
}
} //这种情况,首先while(true)它是个死循环,循环的内容if(a>0),然后输出a,直到减完,任然在死循环之内
/*
if(a>0)
{
while(true)
{
System.out.println("为什么"+"-------"+(a--));
}
} //此种情况if在外面,a是一个成员变量,a>0永远满足,所以内部的while永远会执行下去
*/
}
}
class test
{
public static void main(String[] args)
{
a t = new a();
t.run();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2