⑴ 如何在java中實現交換兩個變數值的方法
public class Demo {
public static void main(String[] args) {
//調用這個靜態方法傳遞兩個int 型的值就是了。
exchange(2, 6);
}
public static void exchange(int a, int b) {
int temp = 0;
temp = a;
a = b;
b = temp;
System.out.println("a=" + a);
System.out.println("b=" + b);
}
}
⑵ java如何實現2個數之間互換
利用異或(a^b)^b 等於a,進行交互,不需要設置臨時變數也不會超范圍。代碼如下:
import java.util.Scanner;
public class woo {
public static void main(String args[]) {
Scanner scan =new Scanner(System.in);
System.out.println("輸入兩個數a, b");
int a = scan.nextByte();
int b = scan.nextByte();
System.out.printf("交換前:a = %d, b = %d ", a, b);
a = a^b;
b = a^b;
a = a^b;
System.out.printf("交換後:a = %d, b = %d", a, b);
}
}
(2)java交換函數擴展閱讀:
值傳遞就是在方法調用的時候,實參是將自己的一份拷貝賦給形參,在方法內,對該參數值的修改不影響原來實參。
引用傳遞是在方法調用的時候,實參將自己的地址傳遞給形參,此時方法內對該參數值的改變,就是對該實參的實際操作。
在java中只有一種傳遞方式,那就是值傳遞.可能比較讓人迷惑的就是java中的對象傳遞時,對形參的改變依然會意向到該對象的內容。
⑶ java程序為什麼一定要寫swap(x,y)
swap(x,y)是一個函數,字面意思是交換傳入的兩個參數的值。
函數內部會將變數x和變數y的值交換,並且列印出交換後的變數值,這里列印的是x=20,y=10
然而這樣並不能真正把main函數裡面定義的變數x,y的值互相交換,因為在這里傳遞給swap()函數的變數只是x,y的一個拷貝,然後再在函數內部對這個副本的值進行交換是不會對原來的x,y的值造成影響。
所以main函數里最後會列印出x=10,y=20
如果想要真正實現交換全部變數x,y的值,只需要把swap函數定義成static void swap(Integer x,Integer y),函數內部再對其進行交換就可以了。這里用到了Java中的包裝數據類型,也稱原始數據類型,用對象來接受傳遞過來的數據,然後對象就會指向全局變數x,y的內存地址,這個作用相當於C語言中的指針。這是讓swap函數起作用的關鍵原理所在。
並不是所有的Java程序中都會用到這個函數,根據業務需要進行保留或刪除吧。
⑷ java 怎麼實現Swap函數 交換兩個數
int n10,m=20,p=0;
p=n;
n=m;
m=p;
這就是最原始的用臨時變數實現數據交換的處理
⑸ 如何用Java寫一個交換函數
//交換A和B
publicvoidexchange(Objecta,Objectb){
Objectt=a;
a=b;
b=t;
}
⑹ 求教:Java 語言是否可以用函數實現兩個數的交換
Java的函數只能有一個返回值,如果只是交換兩個數可以用數組存儲,通過下標來獲取。
public double[] change(double a,double b){
return new double[]{b,a};
}
⑺ 在java中如何實現這個數值互換函數
問問題的不是菜鳥就是大神。呵呵。像一樓說的一樣,操作不了內存地址。調用方法傳遞的是引用的副本。原引用不動,可以把2個數字寫到數組里,數組引用傳進去,根據傳遞的引用找到堆中的數據。將數組內的數據互換,可以實現。但是不是要求的那樣直接互換。
⑻ java中編寫函數交換兩個數!並且導入使用!我函數里兩數可以交換!使用時就不可以交換了!求指教
由於java不像C,C++沒有指針的概念,也不像C#基本類型也可以引用,所以交換兩個基本類型的變數的值確實不方便。可以寫一個類來實現
⑼ 【新手求教】 java 想交換兩個數的值,用函數該怎麼寫
這么寫就沒錯誤了。
你要是用swap方法,應該多個賦值
把swap的結果,賦值給xy
⑽ 用Java語言描述輸入十個數 第一個數與最小的數交換,最後一個數與最大的數交換 用三個函數
packagecom.bank.cn;
importjava.text.DateFormat;
importjava.text.SimpleDateFormat;
importjava.util.ArrayList;
importjava.util.Date;
importjava.util.List;
publicclassTest{
publicstaticvoidmain(String[]args){
int[]a={3,1,5,7,9,2,4,10,8,6};
System.out.println("原始數組:");
prinf(a);
intmin=0;
for(inti=1;i<a.length;i++){
if(a[min]>a[i]){
min=i;
}
}
int[]b=swap(min,a);
System.out.println("最小值與第一個數交換後的數組:");
prinf(b);
intmax=0;
for(inti=1;i<a.length;i++){
if(a[max]<a[i]){
max=i;
}
}
int[]c=swap2(max,b);
System.out.println("最大值與最後一個數交換後的數組:");
prinf(c);
}
//格式化列印數組
privatestaticvoidprinf(int[]c){
for(inti=0;i<c.length;i++){
System.out.print(c[i]+" ");
}
System.out.println(" ");
}
//交換最小值
privatestaticint[]swap(intmin,int[]a){
inttemp;
temp=a[0];
a[0]=a[min];
a[min]=temp;
returna;
}
//交換最大值
privatestaticint[]swap2(intmax,int[]a){
inttemp;
temp=a[a.length-1];
a[a.length-1]=a[max];
a[max]=temp;
returna;
}
}
結果如下: