public class Test { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int x=0;
for(int i=1;i<=4;i++){
x=4;
for(int j=1;j<=3;j++){
x=3;
for(int k=1;k<=2;k++){
x=x+6;
}
}
}
System.out.println(x);
请具体分析求解过程
}}
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int x=0;
for(int i=1;i<=4;i++){
x=4;
for(int j=1;j<=3;j++){
x=3;
for(int k=1;k<=2;k++){
x=x+6;
}
}
}
System.out.println(x);
请具体分析求解过程
}}
所以这段程序就相当于没有最外次循环,次外层循环只有一次,即:x=3;
for(int k=1;k <=2;k++){
x=x+6;
} 至于为什么等于15,楼主自己分析吧。
所以这段程序就相当于没有最外次循环,次外层循环只有一次,即:x=3;
for(int k=1;k <=2;k++){
x=x+6;
} 至于为什么等于15,楼主自己分析吧。
x=3;
for (int k.....)
所以,结果就是15.
楼上的不用担心,不会扣分的,呵呵
这段代码就相当于
x=3;
for(int k=1;k <=2;k++){
x=x+6;
}
public static void main(String[] args) {
int x=0;
for(int i=1;i <=4;i++){
//x=4;
for(int j=1;j <=3;j++){
x=3;
for(int k=1;k <=2;k++){
x=x+6;
}
}
}
System.out.println(x);
} }
for(int k=1;k <=2;k++){
x=x+6;K=1时:
x=x+6 ->x=3+6 (这时x=9)K=2时:
x=x+6 ->x=9+6
同理,次外层的for循环有一个x=3;所以每次x都被重新赋值为3;
因此,原程序中的3层for循环部分等价为如下:
//当原程序的i=4;j=3;时候
x=3;
for(int k=1;k<=2;k++)
{x=x+6;}由此可知,x=3;当k=1 时执行一次x=x+6;得到x=9;当k=2 时又执行一次x=x+6; 得到x=15;如果楼主还不清楚整个过程的话,建议调试一下该程序,用单步调试,就可以很清晰的看到x的值是怎么变化的了..
for(int k=1;k <=2;k++){
x=x+6; K=1时:
x=x+6 ->x=3+6 (这时x=9) K=2时:
x=x+6 ->x=9+6
所以这段程序就相当于没有最外次循环,次外层循环只有一次,即: x=3;
for(int k=1;k <=2;k++){
x=x+6;
} k=1: x = 9
k=2: x=15结果当然是15
就可以看出为什么了!public class TestMethod {
public static void main(String[] args) {
// TODO Auto-generated method stub
int x=0;
for(int i=1;i <=4;i++){
x=4;
for(int j=1;j <=3;j++){
x=3;
for(int k=1;k <=2;k++){
x=x+6;
System.out.println(k+"次"+x);
}
}
}
System.out.println(x);
//请具体分析求解过程
} }
for(int k=1;k <=2;k++){
x=x+6;
}
其实就这点代码
k=1
x=3+6=9
k=2
x=9+6=15