一个关于Java  for循环的问题:
for(int i=1,j=1;j<10;(i==j)?(i++):(j++))
  { System.out.printf("%d*%d=%2d%c",j,i,i*j,(i==j)?('\n'):(' ')) }
就是一个循环的九九乘法表,在TC里可以完美运行,在Java里就编译不了了,不知道是为什么,还请各位高手指教。

解决方案 »

  1.   

    c的格式能和Java的一样吗 
      

  2.   

    public static void main(String args[]) 

       int i=1,j=1; 
       int s; 
       for(i=1;i<=9;i++) 
       { 
          for(j=1;j<=i;j++) 
          { 
             s=i*j; 
             if(j<i) 
             { 
                  System.out.print(i+ "*" + j + " = " + s + " "); 
             } 
             else 
              { 
                   System.out.println(i+ "*" + j + " = " + s + " "); 
              }        } 
        } } 
      

  3.   


    补充一下,我的jdk是1.6_17的
      

  4.   

    这个可以编译,而且我的for(int i=1,j=1;j <10;int ((t=(i==j))==1)?(i++):(j++)) 
    就可以编译了,怪了……
      

  5.   


    for(int i=1,j=1;j <10&&i<10;){
    System.out.printf("%d*%d=%2d%c",j,i,i*j,(i==j)?('\n'):(' '));
    if(i==j){
    i++;
    }else{
    j++;
    }
    } for里面的(i==j)?(i++):(j++)这个地方报错,我修改了一下应该输出的效果和你在TC中一样吧
      

  6.   

    确实一样,谢谢了,不过我还是想知道,为什么Java的for不能这样写,难道Java的for里不能像TC一样执行判断选择?
      

  7.   

    System.out.printf
    java中没有这个语句吧。