黑马程序员技术交流社区
标题:
关于 while与do while结合出现的小问题
[打印本页]
作者:
王勇文
时间:
2013-2-1 20:00
标题:
关于 while与do while结合出现的小问题
本帖最后由 张向辉 于 2013-2-3 12:06 编辑
//====================================
public static void main(String[] args) {
int x=1;
while(x<3){
System.out.println("x="+x);
x++;
}
do{
System.out.println("do: x="+x);
x++;
}while(x<5);
}
}
/* 为什么前面while执行后,do while 不执行前面的内容呢? 直接打印X++后的内容。
*/
复制代码
在做习题的时候发现很奇怪的问题, 没弄懂。 do while 累加while执行后的内容
作者:
王溢君
时间:
2013-2-1 20:04
while是先判断再执行,do while是先执行再判断,,,还有程序是从上向下执行啊。while完了后再来看do ..while的!
作者:
赵晓东
时间:
2013-2-1 20:38
本帖最后由 赵晓东 于 2013-2-1 20:41 编辑
//====================================
class Test1
{
public static void main(String[] args) {
int x=1; //这里定义了x变量 x=1
while(x<3){
System.out.println("x="+x); //循环输出 x = 1,x = 2,然后x = 3不满足条件 跳出循环,记住这里的x = 3
x++;
}
do{
System.out.println("do: x="+x);// 输出 x = 3, x = 4, 当x = 5时不满足while的条件,跳出循环
x++; //继续累加
}while(x<5);
}
}
/* 为什么前面while执行后,do while 不执行前面的内容呢? 直接打印X++后的内容。
*/
复制代码
QQ截图20130201204307.png
(1.15 KB, 下载次数: 53)
下载附件
2013-2-1 20:41 上传
作者:
王昕
时间:
2013-2-1 20:40
有什么问题?
打印x = 2后,x++,x = 3的时候跳出了while,进入do-while的时候 x 是3,所以输出是do: x=3。
作者:
折纸时代
时间:
2013-2-1 21:48
x++ 的结果是 自加后依然是原值, 但是在进行判断时,x 就是加1后的值了.
所以 第一个while循环 输出 1 , 2 . 然后x= 3 时,不满足条件.跳出循环.
do while 中, 是先打印x . 因为上面是x++ 后
再去判断的,所以其值为3 也就是为什么上面循环不满足条件的原因.
所以先do 打印的是3 . 然后自加. 判断时值为4 . 继续自加,判断时值为5 ,不满足条件, 结束循环.
所以while循环输出值 为 1, 2.
do while 输出值为3 , 4
例如 int x = 1;
x ++ ; // 现在x值为1
if (x > 3) // 运算时,x值为2.
作者:
杨浩
时间:
2013-2-1 22:07
不是完全正常么?
你想表达的意思是为什么do while没从0开始?
while的循环完毕后,就跟while循环无关了呀,这时候x是3
那么do while里面,同样循环两次,不是正常么
作者:
铿锵科技
时间:
2013-2-1 22:35
本帖最后由 赵晓东 于 2013-2-1 20:41 编辑
//====================================
class Test1
{
public static void main(String[] args) {
int x=1; //这里定义了x变量 x=1
while(x<3){
System.out.println("x="+x); //循环输出 x = 1,x = 2,然后x = 3不满足条件 跳出循环,记住这里的x = 3
x++;
}
do{
System.out.println("do: x="+x);// 输出 x = 3, x = 4, 当x = 5时不满足while的条件,跳出循环
x++; //继续累加
}while(x<5);
}
}
/* 为什么前面while执行后,do while 不执行前面的内容呢? 直接打印X++后的内容。
*/
复制代码
QQ截图20130201204307.png (1.15 KB, 下载次数: 0)
楼上这位人兄答得很好,但只有5技术分,提问的楼主居然有17分了{:soso_e127:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2