Java does not use an intermediate variable the value of two variables swap

<1> String This is the exchange of two variables

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> It is a constant exchange of two

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();
	}
}
Published 23 original articles · won praise 2 · Views 1034

Guess you like

Origin blog.csdn.net/weixin_46101839/article/details/104420734