我开始学习java,并构建替换数字的'swap'函数。
当我运行此代码时,它不会替换它们。
我怎么能解决这个问题?
public static void swap(double i, double j){
double temp = i;
i = j;
j = temp;
}
这主要在:
double i = 1;
double j = 2;
System.out.println(i+" - "+ j);
swap(i, j);
System.out.println(i+" - "+ j);
1.0 - 2.0
1.0 - 2.0
我需要看到:
1.0 - 2.0
2.0 - 1.0
答案 0 :(得分:1)
在Java中,所有内容都按值传递,包括基本类型。您的i
方法中包含j
和swap
的副本。您确实交换了值i
和j
,但只更换了i
方法范围内的本地值j
和swap
。 i
中的j
和main
未被更改。
要交换值,请在main
方法中内联交换代码,而不是在单独的方法中。
答案 1 :(得分:1)
Java是按值传递的,即使对于引用也是如此。您正在更改原始值的副本,而不是原始值。
无法在Java中实现交换方法来执行您的建议。