2016-10-01 135 views
-2

鉴于这种代码:为什么打印1而不是2?我该如何改进?

public class Test { 

    public void add(int x){ 
    x++; 
    } 

    public static void main(String args[]){ 
    Test t = new Test(); 
    int a = 1; 
    t.add(a); 
    System.out.println(a); 
    } 
} 

我只是想打印出2,而不是1,我想我调用此方法是错误的。 你能帮我理解为什么吗?

+0

你不返回结果,你应该**返回x ++; ** –

回答

1

java按值传递,这意味着您的变量被序列化并且其值被发送到方法。

要打印2您需要使您的方法返回增量后的值。

1

你的方法被声明为void,所以它不返回任何东西。变量a在使用它调用方法时添加时将始终保持不变。

它应该是,你的目的:

public int add(int x){ 
    return x++; 
} 
1

有代码中的许多错误,你应该正确地学习Java。它表明你并不了解一元运算符,这与Java没有严格的关系。

但是可能的解决方案之一(有很多),就是改变你的代码如下:

public class Test { 

    public int add(int x){ 
    return ++x; 
    } 

    public static void main(String args[]){ 
    Test t = new Test(); 
    int a = 1; 
    a = t.add(a); 
    System.out.println(a); 
    } 

} 

再次,学习正确的Java尝试任何运动或SO发布之前。 下次在发布新问题之前,请查看how to ask

相关问题