回 帖 发 新 帖 刷新版面

主题:对一个程序有些迷惑

public class test{
    static int i=0;
    static int j=0;
    public static void main(String[]args){
    int i=2;
    int k=3;
    {
       int j=3;
       System.out.println("i+j is"+i+j);
    }
    k=i+j;
    System.out.println("k is "+k);
    System.out.println("j is "+j);
    }
}    
//
{
       int j=3;
       System.out.println("i+j is"+i+j);
    }输出结果为什么是23.

回复列表 (共3个回复)

沙发

在用System.out.println();输出时,自动调用toString()方法,而“+”是用来连接字符串的,相当于你是将"i"和"j"都先调用了toString方法,然后用“+”号连接输出的。
要想得到5,应该先计算,再调用System.out.println();输出。

板凳

字符串+变量 的运算 变量会自动转换成串
"i+j is"+i+j 相当于 "i+j is"+"2"+"3"
改成
System.out.println("i+j is"+(i+j));
就可以了

3 楼

if you like to get the sum of two para
you should do like this 
System.out.println("i+j="+(i+j));

我来回复

您尚未登录,请登录后再回复。点此登录或注册