x, y ,z三个数从大到小排列:
x<y?(x+=y,y=x-y,x-=y) : x;
y<z?(y+=z,z=y-z,y-=z) : y;
x<y?(x+=y,y=x-y,x-=y) : x;
(x+=y,y=x-y,x-=y) 这个式子的效果是将x与y的值进行交换。
关于某年某月某日是那年的第几天?助教的算法:
首先由用户输入三个数值:
var year = prompt("年");
var month = prompt("月");
var day=Number(prompt("日"));
/*为什么要加Number呢?因为用户输入数字后,prompt收到的是字符串,要进行加减法需要用Number进行强制转换。*/
定义两个值
var feb,sum=0;
判断是否闰年。是闰年,则feb =29,不是闰年,则feb=28。
if (year%4==0&&year%100!=0|| year%400==0){
feb=29
}else{
feb=28
}
if(month>1){sum=sum+31}
if(month>2){sum=sum+feb}
if(month>3){sum=sum+31}
if(month>4){sum=sum+30}
if(month>5){sum=sum+31}
if(month>6){sum=sum+30}
if(month>7){sum=sum+31}
if(month>8){sum=sum+31}
if(month>9){sum=sum+30}
if(month>10){sum=sum+31}
if(month>11){sum=sum+30}
alert(sum+date)
if {
}else
执行逻辑
多条分支 根据条件判断的时候 选择性执行
if(条件1){
语句1
}else if(条件2){
语句2
}else{
其他语句
}
switch case 语句
语法:
var num= prompt("输入");
switch(表达式 例如:num){
case 表达式1 (如果表达式的值 === 表达式1的值):
代码段;即需要执行的代码。
case 表达式2:
代码段2;
case 表达式3:
代码段3;
.........
default(如果表达式和所有的case都不相等):
执行默认代码段;
}