黑马程序员技术交流社区
标题:
关于do while 语句的问题 已解决
[打印本页]
作者:
邵阳
时间:
2012-6-6 07:52
标题:
关于do while 语句的问题 已解决
本帖最后由 邵阳 于 2012-6-6 13:30 编辑
写了一个代码如下
class Demo
{
public static void main(String[] arge)
{
int x=0;
do
{
System.out.println("x="+x);
}
while (x<=3);
x++;
}
}
怎么一直出现x=1
作者:
武剑峰
时间:
2012-6-6 07:54
本帖最后由 武剑峰 于 2012-6-6 07:56 编辑
写错错了,应该将x++放到do...while循环里面。而你写的那种方式只有等循环完了才能执行,但是你的循环一直为真是个死循环无法跳出。正确代码如下
class Demo
{
public static void main(String[] arge)
{
int x=0;
do
{
System.out.println("x="+x);
x++;
}
while (x<=3);
}
}
作者:
田建
时间:
2012-6-6 08:13
你的问题里的一直出现1是错误的,应该是一直出现的是0;你应该先弄清楚do。。。while表达式的构成:
do{执行语句}while(条件表达式)
do...while不论条件是否满足,do while都会至少执行一次,你定义了x=0,但x++在循环以外,根本就无法执行的到,所以x一直等于0,所以条件表达式一直满足,成了死循环!
所以一直打印x=0;将x++移到执行语句里即可!
作者:
李鑫
时间:
2012-6-6 08:21
结果该是0啊,怎么会是1啊,x++在do-while之外,根本无法执行,每次都还是返回的0,其实这样就是成了死循环了,你想解决这问题,直接把x++移到do循环里边就ok了!
作者:
朝哥
时间:
2012-6-6 08:32
do while循环的格式
do
{
执行语句;
}while(条件表达式);
执行流程:
1、先执行一次大括号里面的。
2、再判断条件表达式。如果值为true,就返回大括号里面的继续。否则,结束循环。
修改lz的代码:
int x=0;
do
{
System.out.println("x="+x);
x++;
}
while (x<=3);
作者:
吴小铁你好
时间:
2012-6-6 08:36
应该吧X++放在while语句里面,像你那样x就一直是1,没有自增,所以一直符合while条件。
所以就一直打印1了,可以改为:
do
{
System.out.println("x="+x);
x++;
}
while (x<=3);
作者:
赵兵锋
时间:
2012-6-6 10:14
先不说这样写的初衷,自增句子应该放循环体里的。
就这样运行也应该是不停的输出x=0
因为x初始值为0,接着就进入循环体,开始不停的打印x的值,死循环,永远到不了x++那步,所以x永远为0.
作者:
袁錦泰
时间:
2012-6-6 10:31
如果問題得到解決,請把題目改為已解決 謝謝.
作者:
吴琼
时间:
2012-6-6 11:40
我想你是语句块的作用范围没有搞清楚,因为你定义的int x = 0;每次运算完,又被你定义为0了,这样下去就成了一个死循环。建议你写代码的时候多注意定义的变量的作用范围。
作者:
陌花╮有意、
时间:
2012-6-6 11:47
你这是个死循环根本就不可能是1,应该是0
do{
执行语句;
}while(条件表达式);
先执行一次do里面的语句,然后判断循环条件,满足继续执行
你这个代码的x++根本就不可能执行到,是个死循环
作者:
雷云红
时间:
2012-6-6 12:18
兄弟你基础很差,加油吧
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2