黑马程序员技术交流社区
标题:
是循环那错了么
[打印本页]
作者:
小叔
时间:
2014-5-21 17:19
标题:
是循环那错了么
public class shu {
public static void main(String[] args){
int x=0 ,y=0,z=1;
for(;x<10;x++){
for(;y<10;y++){
for(;z<10;z++){
int xx =x*100+y*10+z;
System.out.println(xx);
}
}
}
}
}
复制代码
不是应该循环1000次么为啥结果只有10
作者:
海世山盟
时间:
2014-5-21 18:04
你的x,y,z定义在main里面但是是在for循环外。因此当你循环到 x=0,y=0,z=10后接下来执行 x=0,y=1,z<10(为假 这里的z之所以是10而不是0 就是因为参数z的循环已经改变了z的值了,你的for循环里确没有再次初始化z,)因此答案是你上边提到的。
如果 for(int x=0;x<10;x++)
{
for(int y=0;y<10;y++)
{
System.out.out.println(10*x+y);
}
}
当执行完x=0,y=10时 y参数的循环不满足条件 循环跳回到x参数的循环,此时从x=1开始,然后判断条件x<10 满足就执行循环体(也就是y参数的循环)
注意,因为y的初始化是定义在了for循环上,因此每次重新执行y参数的循环的时候都会重新初始化。注意:每次重新执行 与 一个循环里面判断条件满足接着执行循环的区别
。
作者:
Sevenette
时间:
2014-5-21 18:52
x y z的初始化没有定义在for循环里面, 所以里面的y z的for循环均只循环一圈。 在下面写了注解不知道能不能看懂0.0
把x y z 的赋值语句放到for循环的第一个条件上就能解决了~
public class shu {
public static void main(String[] args){
int x=0 ,y=0,z=1;
for(;x<10;x++){
for(;y<10;y++){//2. y=1 进入z的for循环
for(;z<10;z++){//1.输出0到9十个数。循环到z==10后,不满足,跳出循环。
//3.z依旧==10,不满足,跳出循环…… 这样重复到x,y都循环结束。
int xx =x*100+y*10+z;
System.out.println(xx);
}
}
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2