自学java的问题,很简单的!请问怎么理解这个程序? for循环先执行哪个?是里面的还是外面的先?怎么执行
publicclassTestA{publicstaticvoidmain(String[]args){for(inti=1;i<4;i++){for(intj=1;j<...
public class TestA {
public static void main(String[] args){
for(int i = 1; i < 4; i++){
for(int j = 1; j < 4; j++){
if(i * j >2)
break;
System.out.println(i * j);
}
System.out.println(i);
}
}
}
输出
1
2
1
2
2
3
为什么输出的结果是那样的?
public class TestB {
public static void main(String[] args){
for(int i = 1; i < 4; i++){
for(int j = 1; j < 4; j++){
if(i * j >2)
continue;
System.out.println(i * j );
}
System.out.println(i);
}
}}
两者输出的结果是一样的?那么两者之间的区别到底在哪里呢? 展开
public static void main(String[] args){
for(int i = 1; i < 4; i++){
for(int j = 1; j < 4; j++){
if(i * j >2)
break;
System.out.println(i * j);
}
System.out.println(i);
}
}
}
输出
1
2
1
2
2
3
为什么输出的结果是那样的?
public class TestB {
public static void main(String[] args){
for(int i = 1; i < 4; i++){
for(int j = 1; j < 4; j++){
if(i * j >2)
continue;
System.out.println(i * j );
}
System.out.println(i);
}
}}
两者输出的结果是一样的?那么两者之间的区别到底在哪里呢? 展开
展开全部
首先是俩层循环,先循环外面的,再循环里面的。
当外层第一次循环的时候 也就是说:i = 1,进入内层循环,j=1 然后计算i * j 是不是大于2,显然不大于,所以不进入IF里面(if里面是跳出当前循环),这时候走下下面输出,也就是输出 I*j = 1 也就是输出1.
然后内层j会自动加1(j=2),i不变,这时候计算i * j 是不是大于2,显然不大于2,因为1 *2 = 2,所以,输出2.
然后内层j会自动加1(j=3),i不变,这时候计算i * j 是不是大于2,显然大于2,因为1 *3 = 3,所以进IF里面,然后break了,这时候,内层就跳出去了,输出i ,i=1,所以输出1.外层循环结束。
然后外层i会加自动加1(i=2),这时候进入内层循环,j初始化了,j=1。然后下面的参照上面的流程就好了。
结果是:i输出3次,是123,j输出3次, 1 2 2
第一次循环结果 :1 2 1
第二次循环结果: 2 2
第三次循环结果 : 3
你要再不懂就……再问
当外层第一次循环的时候 也就是说:i = 1,进入内层循环,j=1 然后计算i * j 是不是大于2,显然不大于,所以不进入IF里面(if里面是跳出当前循环),这时候走下下面输出,也就是输出 I*j = 1 也就是输出1.
然后内层j会自动加1(j=2),i不变,这时候计算i * j 是不是大于2,显然不大于2,因为1 *2 = 2,所以,输出2.
然后内层j会自动加1(j=3),i不变,这时候计算i * j 是不是大于2,显然大于2,因为1 *3 = 3,所以进IF里面,然后break了,这时候,内层就跳出去了,输出i ,i=1,所以输出1.外层循环结束。
然后外层i会加自动加1(i=2),这时候进入内层循环,j初始化了,j=1。然后下面的参照上面的流程就好了。
结果是:i输出3次,是123,j输出3次, 1 2 2
第一次循环结果 :1 2 1
第二次循环结果: 2 2
第三次循环结果 : 3
你要再不懂就……再问
展开全部
for (int i = 1; i < 4; i++) {
System.out.println("i="+i);
for (int j = 1; j < 4; j++) {
if (i * j > 2)break;
System.out.println("j="+j+";i * j="+i * j);
}
}
输出结果和你的是一样的,只不过加了点注释;
i=1
j=1;i * j=1
j=2;i * j=2
i=2
j=1;i * j=2
i=3
首先这是两层循环
外层循环执行的条件是,i<4,i的初始值为1,
step1:i=1;
然后执行里层循环,执行条件是,j<4,j的初始值为1,
step2:j=1,
执行里层循环中的if代码,执行条件是,当i*j>2的时候执行,break的意思是跳出当前循环,也就是跳出里层循环,
step3:i*j=1*1=1 不大于2,所以继续执行里层循环,此时,j要执行j++代码
step4:j++ 意思为j在原来的基础上加1
以此类推……
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从外部近内部~ 那个在前面先执行那个 内部会循环到退出 才继续往下走
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-08-08
展开全部
外循环:每天是一个循环;
内循环:一天的顺序就是起床刷牙吃早餐……
那么你的循环是先起床365次再刷牙365次吗?
所以每一天是新的开始(外循环),然后起床刷牙吃早餐……(外循环),完了一天内(内循环)的事进入第二天(外循环)..
内循环:一天的顺序就是起床刷牙吃早餐……
那么你的循环是先起床365次再刷牙365次吗?
所以每一天是新的开始(外循环),然后起床刷牙吃早餐……(外循环),完了一天内(内循环)的事进入第二天(外循环)..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询