public static void test(int i){//1,2 if(i==3){ }else{ for(int b=0;b<3;b++){ System.out.println("|===============i====================|"+i); test(i+1); System.out.println("|=======copy====i=========copy=======|"+i); } } }main方法{ test(1);}输出结果为:|===============i====================|1|===============i====================|2|=======copy====i=========copy=======|2|===============i====================|2|=======copy====i=========copy=======|2|===============i====================|2|=======copy====i=========copy=======|2|=======copy====i=========copy=======|1|===============i====================|1|===============i====================|2|=======copy====i=========copy=======|2|===============i====================|2|=======copy====i=========copy=======|2|===============i====================|2|=======copy====i=========copy=======|2|=======copy====i=========copy=======|1|===============i====================|1|===============i====================|2|=======copy====i=========copy=======|2|===============i====================|2|=======copy====i=========copy=======|2|===============i====================|2|=======copy====i=========copy=======|2|=======copy====i=========copy=======|1为什么没有i被赋值为3??
我认为,既然i可以被赋值成2
也可以继续被赋值,可是跟踪后明显发现i只会被赋值一次,为什么??
我认为,既然i可以被赋值成2
也可以继续被赋值,可是跟踪后明显发现i只会被赋值一次,为什么??
帮忙运行下,看下。
确实是i等于3程序over了.但是确实也做给i赋值2+1的操作了啊,
按理说可以输出
|=======copy====i=========copy=======|3
就算这么写
if(i==3){
++i;
}
一样不会被赋值。调试下~
我只是没弄懂for循环跳出后为什么变量不改变,知识点模糊,
test(i+1);
不会把i加1.
要想得到3,test(i++);