String output = "test:";
for(int i = 1; i <= 3; i++) 
    output += i;i = 1; output = "test:" + (String)i = test1
i = 2; output = "test:1" + (String)i = test12
i = 3; output = "test:12" + (String)i = test123你把String 放在加号的前面,那么后面的运算就是 String的加法操作,就如同 "test:" + "1"这样的操作了

解决方案 »

  1.   

    兄弟,如果你的output也是int型的话也行啊!
    在java里,一个变量是String,另一个是 ing,那么两都要相加时,就会把ing型转为String,然后再把两个字符串连接起来!
      

  2.   

    而C中若有: int sum=0,i;
               for(i=1;i<=3;i++)
                   sum+=i;
                printf("sum:%d\n",sum);
                结果就是为:    sum:6假如java你也这样写的话也是 6 int sum = 0, i;
    for(i = 1; i <= 3; i++) 
        sum += i;
    System.out.println("sum:" + sum);
    结果也是sum:6
      

  3.   

    当然 (String)int 是错误的,我这里只是举一个例子其实的转换就是 int到String类型的转换 
      

  4.   

    如你所说:
    String output="test:";
          for(int i=1;i<=3;i++)
            output+=i;      
    JOptionPane.showMessageDialog(null,output,"test",JOptionPane.INFORMATION_MESSAGE);
    结果是: test:123
    由于基本类型和字符串相加时,转化为字符串的连接操作:即先将int转化为String型(String.valueOf(int)),再相加。
    理解应该是: i=1,output="test:"+1="test:1";
                i=2,output="test:1"+2="test:12";
                i=3,output="test:12"+3="test:123";
    最后output应该是"test:123"
    即执行JOptionPane.showMessageDialog(null,output,"test",JOptionPane.INFORMATION_MESSAGE);语句后的结果应该是:test:123而C中若有: int sum=0,i;
               for(i=1;i<=3;i++)
                   sum+=i;
                printf("sum:%d\n",sum);
                结果就是为:    sum:6
    而c中,sum为int型,
    理解应该是: i=1,sum=1;
                i=2,sum=sum+2=3;
                i=3,sum=sum+3=6;
    最后一句:printf("sum:%d\n",sum);
    将sum以字符流的形式输出,所以结果是:test:6