输入三个数从大到小输出(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