for实先判断for(;;;)里的限制条件(载你的程序中式没有啦,所以就执行循环体),执行了一遍再执行for(;;;)里的条件改变的。(就是你的程序里的--i和++j啦)

解决方案 »

  1.   

    1.第一种情况:
      tp:for ( ; ;--j),第2个语句是空的,表示Always True,即死循环,当第一次执行循环时,i>j成立,就break tp,即退出到Label Tp的位置,在本程序来说夜就是退出循环。所以结果位10 和 0
    2.第二种情况
        和第一种差不多,第一种你明白了,这种也就想通了
      
      

  2.   

    例子一中
    tp:for(;;--i){
    for(;;++j){
    if(i>j) break tp;
    }
    }首先进入第一个for循环,没有任何条件,就进入了第二个for循环,这是--i并没有执行,同样在第二个for循环里,++j也没有执行就break tp了。for(表达式一;表达式二;表达式三)执行的顺序是第一次进入for循环先执行表达式一,然后判断表达式二,表达式二为真就执行for循环体里的语句,执行完以后再执行表达式三,再次进入循环时就不再执行表达式一了。
      

  3.   

    这样理解对不?
    for(初始值;条件;iteration)statement;
    执行的时候,顺序是:第一遍的时候,初始值(以后就不执行了),然后是判断条件,然后就执行statement,最后就是iteration ,然后重新开始---条件-statement---iteration--continue.