黑马程序员技术交流社区
标题:
for循环
[打印本页]
作者:
范泰洋
时间:
2012-7-12 19:33
标题:
for循环
public class Demo
{
public static void main(String []args)
{
int i = 0, j = 5;
tp: for (;;)
{
i++;
for(;;)
{
if(i > j--)
break tp;
}
}
System.out.println("i = " + i + ", j = "+ j);
}
}
写出结果。
作者:
高宜
时间:
2012-7-12 19:58
i=1,j=4对不对?
作者:
高宜
时间:
2012-7-12 19:59
高宜 发表于 2012-7-12 19:58
i=1,j=4对不对?
顺便问句 break出的来循环吗
作者:
宋启龙
时间:
2012-7-12 21:02
i=1,j=-1 public class Demo
{
public static void main(String []args)
{
int i = 0, j = 5;
tp: for (;;)
{
i++; //i=1,不参与下面的循环
for(;;)
{
if(i > j--) //当j--小于i时 循环结束 i=0 ,输出为-1
break tp;
}
}
System.out.println("i = " + i + ", j = "+ j);
}
}
作者:
李志群
时间:
2012-7-12 21:38
程序思想:是for循环嵌套的,
第一步:首先i=0 进入外for循环 循环第一句判断for( i=0;条件判断(判断为真) ; ) 继续执行 i++ 执行内循环。
for(j= 5;条件判断(判断为真);)继续执行 判断if(i>j--) i=1 j=5 为false break 跳到外循环,
第二步: 继续执行外for循环i被初始话0 继续执行 循环第一句判断for( i=0;条件判断(判断为真) ; ) 继续执行 i++ 执行内循环。
for(j= 4;条件判断(判断为真);)继续执行 判断if(i>j--) i=1(因为外循环i++l所以为1) j=4(上一圈 j-- 所以为4) 这次判断的是1>4吗为false break 跳到外循环,继续执行外循环
第三步继续执行外for循环i被初始话0 继续执行 循环第一句判断for( i=0;条件判断(判断为真) ; ) 继续执行 i++ 执行内循环。
for(j= 3;条件判断(判断为真);)继续执行 判断if(i>j--) i=1(因为外循环i++l所以为1) j=3(上一圈 j-- 所以为3) 这次判断的是1>3吗为false break 跳到外循环,继续执行外循环
第四步:继续执行外for循环i被初始话0 继续执行 循环第一句判断for( i=0;条件判断(判断为真) ; ) 继续执行 i++ 执行内循环。
for(j= 2;条件判断(判断为真);)继续执行 判断if(i>j--) i=1(因为外循环i++l所以为1) j=2(上一圈 j-- 所以为2) 这次判断的是1>2吗为false break 跳到外循环,继续执行外循环
第五步继续执行外for循环i被初始话0 继续执行 循环第一句判断for( i=0;条件判断(判断为真) ; ) 继续执行 i++ 执行内循环。
for(j= 1;条件判断(判断为真);)继续执行 判断if(i>j--) i=1(因为外循环i++l所以为1) j=1(上一圈 j-- 所以为1) 这次判断的是1>1吗为false break 跳到外循环,继续执行外循环
关键在于第六部:
第六部:继续执行外for循环i被初始话0 继续执行 循环第一句判断for( i=0;条件判断(判断为真) ; ) 继续执行 i++ 执行内循环。
for(j= 0;条件判断(判断为真);)继续执行 判断if(i>j--) i=1(因为外循环i++l所以为1) j=0(上一圈 j-- 所以为0) 这次判断的是1>0 y-- 为 -1吗为true break 跳出循环体,
输出结果是x=1 y=-1
public class Demo
{
public static void main(String []args)
{
int i = 0, j = 5;
tp: for (;;)
{
i++;
for(;;)
{
if(i > j--)
break tp;
}
}
System.out.println("i = " + i + ", j = "+ j); 输出结果 x=1 y=-1
}
} 输出结果是1和-1
程序的过程:
作者:
。_Smileヾ淡莣
时间:
2012-7-12 23:07
package cn.itcast;
public class Demo
{
public static void main(String []args)
{
int i = 0, j = 5;
tp: for (;;)
{
i++;
for(;;)
{
if(i > j--)
break tp;
}
}
System.out.println("i = " + i + ", j = "+ j);
}
}
i=1 j=-1;
只有i大于jbreak才能停止;
i++;说加加为1;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2