JS条件判断语句案例--输入三个数从大到小输出

输入三个数从大到小输出(JavaScript)

在 JavaScript 中,最普通的条件语句就是if语句了,基础语法是
if (条件) {
如果条件为 true 时执行的代码
}else{
如果条件为false 时执行的代码
}
在练习js条件判断语句时碰到一个很好的题目,如下:
用户依次输入三个数,并从大到小输出。

	alert("请依次输入三个数");
    var num1 = Number(prompt("请输入第一个数"));
    var num2 = Number(prompt("请输入第二个数"));
    var num3 = Number(prompt("请输入第三个数"));
    var num; //辅助空间
    alert("输入的三个数为:" + num1 + "、" + num2 + "、" + num3);
    if (num1 < num2) {
    
     //如果第二个数大于第一个数,交换两数位置
      num1 = num1 + num2;
      num2 = num1 - num2;
      num1 = num1 - num2;
    }
    if (num1 < num3) {
    
     //如果第三个数大于第一个数,交换两数位置
      num1 = num1 + num3;
      num3 = num1 - num3;
      num1 = num1 - num3;
    }
    if (num2 < num3) {
    
     //如果第三个数大于第二个数,交换两数位置
      num2 = num3 + num2;
      num3 = num2 - num3;
      num2 = num2 - num3;
    }
    alert("三个数从大到小排列后为:" + num1 + "、" + num2 + "、" + num3);

两个数交换的方法有很多,最开始想到借助一个临时空间

	var num1 = 2,num2 = 3;
	var temp;
	temp = num1;
	num1 = num2;
	num2 = temp;
	console.log(num1+"、"+num2);//输出结果为:3、2

还有比较优秀一些的算法是异或运算^

	var num1 = 2,num2 = 3;
	num1 = num1^num2;
	num2 = num1^num2;
	num1 = num1^num2;
	console.log(num1+"、"+num2);//输出结果为:3、2

异或运算的原理如下
1、不相等的位为1,相等的位为0,例如1 ^ 0=1 1 ^ 1=0 0 ^ 0=0
2、一个数异或自己就会等于0,例如X ^ X = 0
3、一个数跟0异或会等于本身 ,例如 X ^ 0 =X
上面代码的例子中两数交换的实际原理如下
num1 =3 =11
num2 =2 =10
异或运算后num1为01=1;
第二轮得出num2为2
第三轮得出num1为3

猜你喜欢

转载自blog.csdn.net/yun_shuo/article/details/112587646