Java不使用中間變量把兩個變量的值互換

<1>這是對兩個String變量的交換

package middle;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/*不使用中間變量 把兩個變量的值互換*/
public class Middle {
	List list=new ArrayList();
	Scanner input=new Scanner(System.in);
	
	//使用ArrayList集合
	public void change() {
		//順序把兩個元素加入集合
		for (int i = 0; i <2; i++) {
			System.out.print("請輸入變量的值:");
			String str=input.next();
			list.add(i, str);
		}
		/*在這裏我遇到一個問題
		*就是我想直接把第一個輸入的input值放到list.add(1,str)的位置
		*但是報錯了,後來我想不能直接放到集合的第二個位置
		*因爲此刻集合沒有初值*/
		
		//倒序輸出list集合
		for (int i = 1; i >=0; i--) {
			System.out.print(list.get(i)+"  ");
		}
	}

//使用LinkedList集合,可以比上面少寫一個循環
public void changeLink() {
		//順序把兩個元素加入集合
		for (int i = 0; i <2; i++) {
			System.out.print("請輸入變量的值:");
			String str=input.next();
			link.add(str);
		}//for
		
		//輸出,比上面少了一個for循環
		System.out.print(link.getLast());
		link.removeLast();
		System.out.print(link.getFirst());
		
	}//changeLink

}

package middle;
public class Test {
	public static void main(String[] args) {
		Middle m=new Middle();
		//調用change方法交換位置
		m.change();
	}
}

<2>這是兩個常量的交換

package middle;
import java.util.Scanner;

/*不使用中間變量 把兩個變量的值互換*/
public class Middle {
	Scanner input=new Scanner(System.in);
	
	public void changeMath() {
		double []math=new double[2];
		for (int i = 0; i <2; i++) {
			System.out.print("請輸入變量的值:");
			math[i]=(double) input.nextDouble();
		}//for
		//將兩個常量相加
		math[0]=math[0]+math[1];
		//相加後的數值減去常量1放入常量1裏
		math[1]=math[0]-math[1];
		//相加後的數值減去(經過上面步驟的)常量1放入常量0裏
		math[0]=math[0]-math[1];
	
		System.out.println(math[0]+" "+math[1]);
	}
}
package middle;
public class Test {
	public static void main(String[] args) {
		Middle m=new Middle();
		m.changeMath();
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章