㈠ 求教:java 語言是否可以用函數實現兩個數的交換
Java的函數只能有一個返回值,如果只是交換兩個數可以用數組存儲,通過下標來獲取。
public double[] change(double a,double b){
return new double[]{b,a};
}
㈡ JAVA 兩數數值交換
^=是按位異或操作(相異為真 相同為假)
a=a^b;
假設a=4 二進製表示為 0100
b=10 二進製表示為 1010
a=a^b = 1110 0x0E 14
a= 1110 b=1010
b= b^a =0100 0x04 4
a= 1110 b=0100
a=a^b = 1010 0x0A 10
a= 1010 b=0100
所以及交換了
原理就是加減法
如下
//a=4 b=10
a+=b ;
//a=14 b=10
b-=a;
//a=14 b=4
a-=b;
//a=10 b=4
完成交換
㈢ java 兩個數交換
這樣做是肯定沒有換的。在JAVA裡面沒有指針的概念,你傳過去的只不過一個引用而已,他不會改變原有的值。你把a,b定義成全局變數是能夠改變的。先弄清在JAVA中參數的傳遞到底傳的是什麼,這樣你會比較容易理解
㈣ java 兩個數的交換
public
class
change{
Integer
a;
Integer
b;
a=10;
b=8;
public
static
void
main(String
args[]){
System.out.println("輸出互換前手中的紙牌:");
System.out.println("左手中的紙牌:"+a);
System.out.println("右手中的紙牌:"+b);
System.out.println();
changeXy(a,b);
/*為什麼在調用changeXy()方法後,a和b的值沒有發生交換*/
System.out.println("輸出互換後手中的紙牌:");
System.out.println("左手中的紙牌:"+a);
System.out.println("右手中的紙牌:"+b);
}
public
static
void
changeXy(Integer
x,integer
y){
Integer
temp=null;
temp=x;
x=y;
y=temp;
}
}
㈤ java很簡單的問題,兩個數交換。。
問題很簡單,作為參數傳入的值它代表的意義和作用域已經發生改變。你改變的是參數中的兩個x,y的值,而你列印的並非這兩個值。相當於swap只是引用x,y的值給另外兩個變數在函數中進行交換值換算,並不是操作本身的x,y對象,實際它們的值並未發生任何的改變。
㈥ 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);
}
}
(6)java兩個數交換擴展閱讀:
值傳遞就是在方法調用的時候,實參是將自己的一份拷貝賦給形參,在方法內,對該參數值的修改不影響原來實參。
引用傳遞是在方法調用的時候,實參將自己的地址傳遞給形參,此時方法內對該參數值的改變,就是對該實參的實際操作。
在java中只有一種傳遞方式,那就是值傳遞.可能比較讓人迷惑的就是java中的對象傳遞時,對形參的改變依然會意向到該對象的內容。
㈦ java如何交換a和b的值
是兩個變數的值嗎 用一個中間變數temp就行了 temp=a a=b b=temp
㈧ java如何實現2個數之間互換
這只能找一個中間變數,例如
int a = 10;
int b = 8;
中間變數:
int temp;
轉換過程:
temp = a;
a = b;
b = temp;
就可以了
㈨ java進行兩數交換時,如何不用中間量就交換
方法有很多,這里舉出兩種常用的:
方法1:使用^操作來實現
int
x
=
10;
//用二進製表示:x=0b1010;
int
y
=
15;
//用二進製表示:x=0b1111;
System.out.println("x="+x+"
y="+y);
x
=
x^y;
//x^y=
0b1010^0b1111
=
0b0101
y
=
x^y;
//x^y=
0b0101^0b1111
=
0b1010
=10
x
=
x^y;
//x^y=
0b0101^0b1010
=
0b1111
=15
System.out.println("x="+x+"
y="+y);
方法2:使用+,-操作來實現
int
x
=
10;
int
y
=
15;
System.out.println("x="+x+"
y="+y);
x
=
x+y;
//x=
10+15=25
y
=
x-y;
//y=
25-15=10
x
=
x-y;
//x=
25-10=15
System.out.println("x="+x+"
y="+y);
結果:
x=10
y=15
x=15
y=10
早期為了減少中間變數對計算機內存的佔用,採用中間的方法來交換數據。其實這種交換並不完美,如果交換的兩個數都很大,可能會內存溢出。在現在的開發中建議使用中間值來交換數值。
㈩ java!輸入兩個數並交換!謝謝!
public static void main(String[] args) {
//定義輸入對象s
Scanner s=new Scanner(System.in);
System.out.print("輸入第一個數的值:\t");
int number1=s.nextInt();
System.out.print("\n輸入第二個數的值:\t");
int number2=s.nextInt();
System.out.println("number1的值:"+number1+"\t\t number2的值:"+number2);//輸出交換前內容
//定義中間變數temp進行交換(你小學老師問你:現在有紅墨水1瓶、藍墨水1瓶,要你將紅、藍兩種墨水交換瓶子,你是不是要找個空瓶子來處理)
int temp=number1;
number1=number2;
number2=temp;
System.out.println("number1的值:"+number1+"\t\t number2的值:"+number2);//輸出交後內容
}