为什么我的 java 交换功能不起作用?
Why is my java swap function not working?
我正在尝试在 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
来检查。
您可以return 在数组的帮助下交换值。 (由 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);
}
}
您的 swap
只是将值的副本复制到 a
和 b
中,因此您只是交换 a
和 b
变量中的值swap
范围内。
public class HelloWorld {
private int a, b;
HelloWorld(){
this.a=0;
this.b=0;
}
HelloWorld(int a, int b){
this.a=a;
this.b=b;
}
void swap() {
int temp = this.a;
this.a = this.b;
this.b = temp;
}
public static void main(String[] args) {
HelloWorld obj = new HelloWorld(10,5);
obj.swap();
System.out.println("a="+obj.a);
System.out.println("b="+obj.b);
}
}
如果您使用的是局部变量,那么范围将在 swap() 方法内。但是,如果您将它用作实例变量,则此示例会有所帮助。
实例变量的范围将在整个 class.
中可用
对于范围,您可以查看
http://www.tutorialspoint.com/java/java_variable_types.htm
如果你想使用局部变量,那么 TAsk 给出的答案会更有帮助。根据您的要求。
我正在尝试在 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
来检查。
您可以return 在数组的帮助下交换值。 (由 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);
}
}
您的 swap
只是将值的副本复制到 a
和 b
中,因此您只是交换 a
和 b
变量中的值swap
范围内。
public class HelloWorld {
private int a, b;
HelloWorld(){
this.a=0;
this.b=0;
}
HelloWorld(int a, int b){
this.a=a;
this.b=b;
}
void swap() {
int temp = this.a;
this.a = this.b;
this.b = temp;
}
public static void main(String[] args) {
HelloWorld obj = new HelloWorld(10,5);
obj.swap();
System.out.println("a="+obj.a);
System.out.println("b="+obj.b);
}
}
如果您使用的是局部变量,那么范围将在 swap() 方法内。但是,如果您将它用作实例变量,则此示例会有所帮助。
实例变量的范围将在整个 class.
中可用
对于范围,您可以查看
http://www.tutorialspoint.com/java/java_variable_types.htm
如果你想使用局部变量,那么 TAsk 给出的答案会更有帮助。根据您的要求。