当前位置: 技术问答>java相关
循环语句的问题??????
来源: 互联网 发布时间:2015-03-09
本文导语: class Foo { public static void main(String args[]) { int i=10; int j=0; tp:for(;;--i){ for(;;++j){ if(i>j) break tp; } } System.out.println(i+" "+j); } } 打印结果为 10 0 class ert { public static void main(String args[]) { int i,j; tp:for(i=10;;--i){ System....
class Foo {
public static void main(String args[]) {
int i=10;
int j=0;
tp:for(;;--i){
for(;;++j){
if(i>j) break tp;
}
}
System.out.println(i+" "+j);
}
}
打印结果为 10 0
class ert {
public static void main(String args[]) {
int i,j;
tp:for(i=10;;--i){
System.out.println(i);
for(j=0;;++j){
if(i>j)
System.out.println(i+" "+j);
break tp;
}
}
System.out.println(i+" "+j);
}
}
打印结果为
10
10 0
10 0
for是如何执行循环的?请大家帮忙!!!!
public static void main(String args[]) {
int i=10;
int j=0;
tp:for(;;--i){
for(;;++j){
if(i>j) break tp;
}
}
System.out.println(i+" "+j);
}
}
打印结果为 10 0
class ert {
public static void main(String args[]) {
int i,j;
tp:for(i=10;;--i){
System.out.println(i);
for(j=0;;++j){
if(i>j)
System.out.println(i+" "+j);
break tp;
}
}
System.out.println(i+" "+j);
}
}
打印结果为
10
10 0
10 0
for是如何执行循环的?请大家帮忙!!!!
|
for实先判断for(;;;)里的限制条件(载你的程序中式没有啦,所以就执行循环体),执行了一遍再执行for(;;;)里的条件改变的。(就是你的程序里的--i和++j啦)
|
例子一中
tp:for(;;--i){
for(;;++j){
if(i>j) break tp;
}
}首先进入第一个for循环,没有任何条件,就进入了第二个for循环,这是--i并没有执行,同样在第二个for循环里,++j也没有执行就break tp了。
for(表达式一;表达式二;表达式三)执行的顺序是第一次进入for循环先执行表达式一,然后判断表达式二,表达式二为真就执行for循环体里的语句,执行完以后再执行表达式三,再次进入循环时就不再执行表达式一了。
tp:for(;;--i){
for(;;++j){
if(i>j) break tp;
}
}首先进入第一个for循环,没有任何条件,就进入了第二个for循环,这是--i并没有执行,同样在第二个for循环里,++j也没有执行就break tp了。
for(表达式一;表达式二;表达式三)执行的顺序是第一次进入for循环先执行表达式一,然后判断表达式二,表达式二为真就执行for循环体里的语句,执行完以后再执行表达式三,再次进入循环时就不再执行表达式一了。
|
1.第一种情况:
tp:for ( ; ;--j),第2个语句是空的,表示Always True,即死循环,当第一次执行循环时,i>j成立,就break tp,即退出到Label Tp的位置,在本程序来说夜就是退出循环。所以结果位10 和 0
2.第二种情况
和第一种差不多,第一种你明白了,这种也就想通了
tp:for ( ; ;--j),第2个语句是空的,表示Always True,即死循环,当第一次执行循环时,i>j成立,就break tp,即退出到Label Tp的位置,在本程序来说夜就是退出循环。所以结果位10 和 0
2.第二种情况
和第一种差不多,第一种你明白了,这种也就想通了