选择结构
为什么要有选择结构。
因为生活当中也有很多选择,计算机也就有了选择。
If else ---一个条件,两个分支
If(){
} else{
}
if(下雨){
在食堂吃放
}else{
出去吃饭}
完善三角形计算面积的案例
var a=Number(prompt("请输入第一个边长"));
var b=Number(prompt("请输入第二个边长"));
var c=Number(prompt("请输入第三个边长"));
//计算三角形的面积,首先要判断是否构成三角形
//任意两边之和要大于第三边才能构成三角形
if(a+b>c&&a+c>b&&b+c>a){
var p=(a+b+c)/2;
var s= Math.sqrt(p*(p-a)*(p-b)*(p-c));
alert(s);
} else{
alert("对不起,您输入的三个边长构成三角形");
}
判断一个数是否为水仙花数(各位的立方加上十位的立方加上百位的立方等于这个数本身,它就是水仙花数)
var num=Number(prompt("请输入一个三位数"));
var a=num%10;
var b=Math.floor(num/10)%10;
var c=Math.floor(num/100);
var d=a*a*a+b*b*b+c*c*c;
if(d==num){
alert("这个数是水仙花数");
}else{
alert("这个数不是水仙花数");
}//输入153,结果为这个数为是水仙花数
的士计费器(3公里以内固定收费7元,超出的部分每公里2元),用户输入公里数,计算要付的费用。
1. 接受用户的打的公里数(num)
2. 判断公里数的值,如果公里数小于等于3,就算出用户所付钱数y为7;如果公里数大于3,用公里数减去3再向上取整得到值赋值给s,计算出用户所付钱数y=7+s*2
3. 打印结果
var num=Number(prompt("请输入公里数"));
if(num<=3){
var y=7;
alert(y);
} else{
var num1=num-3;
var s=Math.ceil(num1);
var y=7+s*2;
alert(y);
}
求解一元二次方程的根()
1. 输入方程二次项系数a
2. 输入方程一次项系数b
3. 输入方程常数项系数c
4. 判断方程是否有实根 D=b^2-4*a*c
5. 如果D<0,则方程无实根
6. 如果D>0,则方程有实根
7. 打印结果
var a=Number(prompt("请输入第一个数"));
var b=Number(prompt("请输入第二个数"));
var c=Number(prompt("请输入第三个数"));
var D=b*b-4*a*c;
if(D<0){
alert("方程无实根");
}else{
var x1=(-b+Math.sqrt(b*b-4*a*c))/(2*a);
var x2=(-b-Math.sqrt(b*b-4*a*c))/(2*a);
}
alert("x1="+x1+ "x2= "+x2);
计算献血量(体重,血红蛋白含量)
Hb<30 7ml/kg
30-60 10ml/kg
>60 15ml/kg
请根据用户端输入的体重和血红蛋白含量计算他的最大献血量
1. 接受用户的体重数据wight
2. 接受用户的血红蛋白含量数据hb
3. 判断用户体重数据是否合格
4. 如果不合格,则对不起,您不适合输血!
5. 如果合格,判断用户血红蛋白含量hb是否小于30,如果小于30,献血量blood=7*weight
6. 是否在30-60之间,如果是,blood=10*weight
7. 是否>60间,如果是,blood=15*weight
8. 打印结果
var weight =Number(prompt("输入用户的体重"));
var hb =Number(prompt("请输入用户的血红蛋白含量"));
var blood;
if(weight<45){
alert("对不起,您不适合献血!")
}else if(hb<30){
var blood=7*weight;
}else if(30<hb<60){
var blood = 10*weight;
}else {
blood=15*weight;
}
alert(blood);
制作一个四则运算器,要求用户输入一个数再输入一个算术运算符再输入一个数,计算出对应的结果。
1. 请用户输入一个数num
2. 请用户输入一个算术运算符
3. 请用户输入一个数num1
4. 判断四则运算符
5. 计算出结果sum
6. 打印结果
var num1 =Number(prompt("请输入一个数"));
var op =prompt("请输入一个四则运算符");
var num2 =Number(prompt("请输入一个数"));
var result=0;
if(op =="+"){
result=num1+num2;
}else if(op =="-"){
result=num1-num2;
}else if(op=="*"){
result=num1*num2;
}else if(op=="/") {
if (num2 != 0) {
result= num1/ num2;
} else {
alert("除数不能为0")
}
} else{
alert("运算符有误!")
}
alert(result);
选择还有switch(开关)
switch(x){
case a:
case b:
break;
case c;
default:
}
var num1 =Number(prompt("请输入一个数"));
var op =prompt("请输入一个四则运算符");
var num2 =Number(prompt("请输入一个数"));
var result=0;
switch(op){
case"+":
result=num1+num2;
break;
case"-":
result=num1-num2;
break;
case"*":
result=num1*num2;
break;
case"/":
result= num1 / num2;
break;
}
alert(result);
它的执行效率比if()快很多,它会将所有可能放在内存当中,case就是标号,当条件满足这个标号时直接进入这个情况里面。
Switch优点:
1. 结构清晰,一目了然。
2. 运行速度相对较快。
Switch的执行逻辑:从switch后面的小括号里面的变量与后面的case中的常量相等的地方开始执行,然后依次执行后面的命令,一直到指令结束。
Case:并不会参与运算,不起条件作用,只起到一个标号的作用,只是执行指令的入口。
Default 就是除了case以外的情况。
Break 并不是switch语法中的内容,它不属于switch,只是一个辅助工具,用于跳出当前结构。
百分制转化为4分制
A 80分以上
B 70——80
C 60——70
D 60以下
1.接受学生的分数score
2.将成绩除以10取整score
3.判断score值,8,9,10, 则等级为A
7, 则等级为B
6, 则等级为C
1,2,3,4,5,则等级为D
4. 打印学生分数
var score =Number(prompt("接受学生分数"));
var score1 =Math.floor(score/10)
var res="";
switch (score1){
case 1:
case 2:
case 3:
case 4:
case 5:
res="D";
break;
case 6:
res="C";
break;
case 7:
res="B";
break;
default:
res="A";
} alert(res);
11.16是今年的第几天,先不考虑闰年。
1.接受月份
2.接受日期
3.根据月份的值将前几个月的日期加在一起
4.再加上当前月份的日期就是总共天数
5.打印天数
var month=Number(prompt("接受月份"));
var day =Number(prompt("接受日期"));
var days=0;
switch(month-1) {
case 11:
days+= 30;
case 10:
days +=31;
case 9:
days+= 30;
case 8:
days+= 31;
case 7:
days+= 31;
case 6:
days+= 30;
case 5:
days+= 31;
case 4:
days+= 30;
case 3:
days+= 31;
case 2:
//if((year%4==0&&year%100!=0)||(year%400==0)){
//days+=29;
//}else{
days+=28;
// }
case 1:
days+= 31;
} days +=day;
alert("是第"+days+"天");
4年一闰,百年不闰,四百年再闰
var year=Number(prompt("接受年份"));
var month=Number(prompt("接受月份"));
var day =Number(prompt("接受日期"));
var days=0;
switch(month-1){
case 11:
days+= 30;
case 10:
days+= 31;
case 9:
days+= 30;
case 8:
days+= 31;
case 7:
days+= 31;
case 6:
days+= 30;
case 5:
days+= 31;
case 4:
days+= 30;
case 3:
days+= 31;
case 2:
if((year%4==0&&year%100!=0)||(year%400==0)){
days+=29;
}else{
days+=28;
}
case 1:
days+= 31;
} days+=day;
alert("是第"+days+"天");