public class test99 {
    public test99() {
    }
    public static void main(String[] args) {
        
      for(  int i=2, j=1;j<10;i=(i==9)? ((++j/j)+1):(i+1))  {     
    
      
          System.out.println( j+"*"+i+"="+i*j+(i==9?"\n":" "));
    
    
    }
    }
}

解决方案 »

  1.   

    如果写成这样呢?int i=2;
    for(j=1;j<10;){
    if(i==9)
      i=++j/j+1;
    else
      i++;
    System.out.println( j+"*"+i+"="+i*j+(i==9?"\n":" "));
    }在这里,i是做一个一个开关的作用,当i运算9次后, j才跳变。这是一个高明的地方,如果一般的简单的循环可以这样:for(i=1;i<10;i++)
    for(j=1;j<10;j++)
       i*j
    前一种写法并没有什么运算上的优势, 貌似是显示一下编程技巧
      

  2.   

    i=++j/j+1;
    是不是要等到
    执行 else 时  j才会自己加一次?
      

  3.   

    這些代碼要是自己寫著玩還是挺有意思的。
    不過要是工作的話估計會讓PM說:“你不覺得你寫的代碼很噁心嗎?”
    呵呵,開玩笑,不過還是覺得代碼寫得簡單,明瞭。簡潔很重要,可是不能讓別人看不懂或者看著很費勁呀?這代碼寫上註釋估計都要看一會。
    這要是做項目,有機個PG寫這樣的代碼,後期就不用找人維護了。直接從新作個新的項目吧。