程序中有三大结构,顺序,选择,循环
顺序:代码从上到下一行一行的执行
选择:代码有分支,有选择的
循环:重复执行某一段代码
为什么需要选择结构
刚刚的计算三角形面积的案例,如果说,当输入的三条边
不能构成三角形时,就不能使用公式计算
在生活中,也有很多的选择
比如说明天放假,有对象的和对象出去玩
没有的在寝室长蘑菇
再比如说看看这个月还剩下多少天,
口袋里还剩下多少钱
钱多天天大鱼大肉
钱少只能吃泡面
基本if语法
If 如果
else 否则
案例:绝对值
输入一个数,如果这个数是正数,那么输出它本身
如果这个数是负数,那么输出它的相反数
var num=prompt("请输入一个数");
if(num>0){
alert(num);
}
else{
var a=Math.abs(num);
alert(a);
}
案例:计算三角形面积(改)
要求能够判断出三条边是否能构成三角形
如果不能,输出“请正确输入“
var a,b,c;
a=Number(prompt("请输入三角形的a边"));
b=Number(prompt("请输入三角形的b边"));
c=Number(prompt("请输入三角形的c边"));
//得到三条边的长度
if((a+b>c)&&(a-b<c)){
alert("能")
}
alert("不能")
案例:判断一个数是否为水仙花数
var a,b,c,d;
a=Number(prompt("请输入三位数"));
b=Math.floor(a/100);
c=Math.floor((a%100)/10);
d=Math.floor(a%10);
if((Math.pow(b,3)+Math.pow(c,3)+Math.pow(d,3))==a){
alert("是")
}
alert("不是")
If语句嵌套
案例:献血
根据性别和体重计算输血量女性体重不超过50kg的输血量为
200毫升,否则的话就250毫升
男性不超过60kg的献血为250毫升,否则300毫升
1获取性别 sex
2 获取体重 kg
var sex,ml,kg;
sex=Number(prompt("请输入性别"));
// ml=Number(prompt("请输入输血量"));
kg=Number(prompt("请输入体重"));
if(sex=="男"){
if(kg>60){
alert("300")
}else
alert("250")
}else
{
if(kg>60){
alert("250")
}else
alert("200")
}
Else if
案例:成绩评语
输入一个零到一百的成绩
90-100:666,真厉害
80-90:还不错了
70-80:还有很大的进步空间
60-70:要小心,马上就快挂了
<60:孩子多半是废了。。。。。
var a=Number(prompt("请输入成绩"))
if(a>=90&&a<100){
alert("你真厉害")
}else if(a>=80&&a<90){
alert("还不错")
}else if(a>=70&&a<80){
alert("还有进步空间")
}else if(a>=60&&a<70){
alert("要小心")
} else if(a>=0&&a<60){
alert("废了")
}else{
alert("请正确输入")
}
Switch
如果是if选择的分支比较多的时候,就需要一个一个分支的从上往下执行
,这样执行的效率是非常低的,需要对选择结构进行一个改进
使用switch就可以解决这个问题
Switch基本语法
Switch:开关
语法:
在执行的过程中,a 的值与哪个分支后面的值一样
就运行哪个分支的代码
Case后面的值可以立即为标号(程序中指令的地址)
如果运行完一个分支后,不想继续运行的话
可以用break来跳出选择结构,但break不是必须要写的
如果a 的值与case后面标号都对应不上,则运行default(默认)
里面的代码
Switch的好处:
(1) 执行速度比else if更快,效率更高
(2) 选择结构更加清晰,一目了然
案例:判断季节
要求输入月份(1,2,3,。。。,12)判断该月所处的季节
假定12,1,2是冬季,以此类推 月份:month
var b=Number(prompt("请输入月份"));
switch (b)
{
case 3:case 4:case 5: {
alert("春季");
break;
}case 6:case 7:case 8:{
alert("夏季");
break;
}case 9:case 10:case 11:{
alert("秋季");
break;
}case 12:case 1:case 2:{
alert("冬季");
break;
}
default:{
alert("请正确输入");
}
}
循环结构
循环结构的基本概念
循环:重复干一件事情
重复执行一块代码
快递员:查看送件地址-》赶往目的地-》电话通知收件人-》收件人签字-》快递交付
直到所有快递送完
食堂阿姨:取餐盘-》问你要什么菜-》打菜-》给餐盘。。。。。重复以上过程
直到所有学生打饭完成
While循环
While:当……则……当什么条件成立时,一直重复做,不成立时停止
案例:找出所有水仙花数(水仙花数是三位数)
var sum=100;
while(sum<=999){
var b=Math.floor(sum/100);
var c=Math.floor((sum%100)/10);
var d=Math.floor(sum%10);
var e=(Math.pow(b,3)+Math.pow(c,3)+Math.pow(d,3));
if(e==sum){
alert(sum+"是水仙花数");
}
sum++
}
案例:GDP预测
2009年美国的GDP是142562.75亿美元,而中国是49089.82亿美元,
假设美国经济增长率为2%,而中国为8%,预测中国GDP何时能超过美国
var a=49089.82;
var b=142562.75;
var n=2009;
while (a<=b){
a+=a*0.08;
b+=b*0.02;
n++;
}
alert("在"+n+"年中国GDP超过美国")
循环的套路
(1) 初始条件
(2) 循环条件
(3) 循环体(重复执行的代码)
(4) 为下一次循环做准备
当我们遇到问题的时候我们先想四个问题
(1) 初始状态是什么样的
(2) 重复的条件是什么(在什么条件下才会重复)
(3) 重复要做什么
(4) 怎么过度到下一次循环