<分区>
我正在尝试在 java 中创建一个交换函数,但为什么它不起作用?
void swap(int a, int b) {
int temp = a;
a = b;
b = temp;
}
<分区>
我正在尝试在 java 中创建一个交换函数,但为什么它不起作用?
void swap(int a, int b) {
int temp = a;
a = b;
b = temp;
}
最佳答案
因为java是pass by value而不是通过引用传递。您的交换方法不会更改实际的 a
和 b
。您实际上已经交换了 a
和 b
生活只在方法里面。您可以通过在 swap
方法中打印 a
和 b
来检查这一点。
您可以返回在数组的帮助下交换的值。 (由 sᴜʀᴇsʜ ᴀᴛᴛᴀ
首先添加)
public class Test {
static int[] swap(int a, int b) {
return new int[]{b,a};
}
public static void main(String[] args) {
int a = 10,b = 5;
int[] ba = swap(a,b);
a = ba[0];
b = ba[1];
System.out.println(a);
System.out.println(b);
}
}
关于java - 为什么我的 java 交换功能不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32804905/
相关文章:
java - Spring 批处理 : different job launcher for different jobs
java - 如何以指定的时间间隔自动定期调用 servlet
amazon-web-services - RDS 吃掉所有交换空间
java - Tomcat关闭: class loading during contextDestroyed does not work
java - poi-ooxml-schemas-3.14 JAR 中缺少 STSheetViewType 类
linux - 如何将 "memory priority"分配给 linux 进程?
c++ - 使用 std::stack 和 std::map 内存使用率意外高
Java-8:如何在忽略区分大小写的情况下使用 Map.Entry#comparingByValue 对 Map(基于值)进行排序?