public class Text {
public static void main(String[] args){
for(int i = 0;i <6;i++){
int k = ++i;
while(k < 5){
System.out.print(i);
k+=2;
}
}
}
}
结果是113为什么是这个结果,求大仙解释

解决方案 »

  1.   

    System.out.print(i);

    System.out.println(i);实际是输出3次,
    分别是
    1
    1
    3
      

  2.   

    先执行for语句:当i=0时,开始执行while里的语句:k =1时; 输出i=0;继续执行while里的循环,k = 3,输出i = 0继续执行while里的循环,k=5,while循环中止;    继续执行for语句:i =1时;,开始执行while里的语句:k =2时; 输出i=1;继续执行while里的循环,k = 4,输出i = 1继续执行while里的循环,k=5,while循环中止;     继续执行for语句:i =2时;,开始执行while里的语句:k =4时; 输出i=2;继续执行while里的循环,k = 5,while循环中止;   继续执行for语句:i =3时;,开始执行while里的语句:k =5时; while循环中止;   这样一来不就是输出0011223吗?
      

  3.   

    int k = ++i;
    看看这个什么意思
      

  4.   

    System.out.print(i);输出没有换行
      

  5.   

    k =1;i=1;进入while循环,应该是这个意思吧
      

  6.   


    k=1,i=1 打印 1
    k=3,i=1 打印 1
    k=3,i=3 打印 3
    不挺好理解的么,你debug就知道了
      

  7.   

    第一次到k=++i,k=i=1,随后while中输出两次i。11
    第二次到k=++i,k=i=3,随后while中输出一次i。3
    第三次,k=i=5,不进入while循环。
    所以最终输出113.