第二章 流程控制之—分支结构
了解程序的三种结构
熟悉顺序结构的程序执行过程
熟练使用if语句实现分支的条件判断
熟练使用switch语句进行多重分支判断
ECMA基本语法:
注释,变量,运算符,数据类型,流程控制,对象
一、流程控制
1.1、什么是流程控制
程序中的执行顺序。(从上往下,从右到左 (如果右边是表达式 (左到右)))
控制代码的执行时间。执行次数。
饿了就需要吃饭。
1.2、3种程序结构
1、顺序结构:从上往下,从右到左 (如果右边是表达式 (左到右))
2、分支结构:控制代码何时执行,是否执行
3.循环结构:控制代码执行多少次
二、分支机构–if
格式
if(条件表达式①){
执行的代码块;
}
//**执行流程:**当条件表达式①成立时,才会执行代码块。
如果 你的分数小于 60,输出 恭喜你,不及格!
<script type="text/javascript">
// 如果 你的java分数小于 60,输出 恭喜你,不及格!
var Score = prompt("请输入你的java成绩");
/*alert(typeof(Score));//string
alert(typeof(60));//number*/
if(javaScore < 60){
alert("恭喜你,不及格!");
}
</script>
2.2if else 判断 (如果这样,否则这样)
if(条件表达式①){
代码块①;
}else{
代码块②;
}
先判断条件表达式①是否成立,如果成立 执行代码块①, 否则,执行代码块②;
var Score = prompt("请输入你的java成绩");
if(Score < 60){
alert("恭喜你,不及格!");
}else{
alert("恭喜你,秀儿!");
}
2.3 多重if 判断
if(条件表达式①){
代码块①;
}else if(条件表达式②){
代码块②;
}else if(条件表达式③){
代码块③;
}else if(条件表达式④){
代码块④;
}else if(条件表达式⑤){
代码块⑤;
}else{
代码块⑥;
}
先判断条件表达式①是否成立,如果成立 执行代码块①,
否则 ,判断条件表达式②是否成立,如果成立 执行代码块②
否则 ,判断条件表达式③是否成立,如果成立 执行代码块③
否则 ,判断条件表达式④是否成立,如果成立 执行代码块④
。。。。。
一直到 最后一个else 执行最后一个代码块 程序结束。
案例1:
开学了,体温检测,如果发烧,就进行核酸检测,看是否感染肺炎,如果是感染肺炎,立即隔离。否则,正常上课。
var tiwen = prompt("请输入体温");
if( tiwen >37){
alert("进行核酸检测")
var result=prompt("是否感染");
if(result=="是"){
alert("隔离")
}else{
alert("正常上课")
}
}else{
alert("正常上课")
}
var score =prompt("请输入你的考试成绩");
if(score >=90){
alert("秀儿!");
}else if(score>=80 ){
alert("有点秀儿!")
}else if(score>=70 ){
alert("有1点秀儿!")
}else if(score>=60 ){
alert("有2点秀儿!")
}else if(score<60 ){
alert("有3点秀儿!")
}
三、分支机构 switch-case
//语法格式
switch(参数){
case 值1:
代码块①;
break;
case 值2:
代码块②;
break;
case 值3:
代码块③;
break;
。。。。。
default:
最后代码块;
break;
}
执行流程:
用switch后面的参数跟case比较是否相同,相同就执case后面的代码块,否则就和下一个case比较 break是结束语
如果一个case都吧相同就执行default 下的代码块
**注意**:比较值 是全等的比较 即比较值还要比较数据类型。
switch跟if的区别:
if 一般进行区间的判断。
switch 一般进行等值的判断。
练习
<script type="text/javascript">
var a=prompt("请输入一个数判断是不是水仙花数");
// var b=a1/100;
//var c=a1%100/10;
// var d=a1%10;
var a1=parseInt(a);
var b=parseInt(a1/100);
var c=parseInt(a1%100/10);
var d=parseInt(a1%10);
if (a==b*b*b+c*c*c+d*d*d){
alert("true");
}else{
alert("false");
}
</script>
//一个笼子里有鸡和兔子,头有35,腿有94;输入两个数字,分别代表鸡和兔子的个数,输出是否是答案
<script type="text/javascript">
var x = Number (prompt("鸡个数"));
var y = Number (prompt("兔个数"));
if(x+y==35&&2*x+4*y==94){
alert(true);
}else
{
alert(false);
}
</script>
//输入一个3/4/5/6位数,判断这个数是不是回文数(正看==反看)。
<script type="text/javascript">
var a=Number(prompt("请输入不大于六位数的"));
var b,c,d,e,f,g;
if(a>=100000){
b=parseInt(a/100000);
c=parseInt(a%100000/10000);
d=parseInt(a%10000/1000);
e=parseInt(a%1000/100);
f=parseInt(a%100/10);
g=parseInt(a%10);
alert(b==g && c==f && d==e);
}else if(a>=10000){
d=parseInt(a/10000);
e=parseInt(a%10000/1000);
f=parseInt(a%100/10);
g=parseInt(a%10);
alert(d==g && e==f );
}else if(a>=1000){
d=parseInt(a/1000);
e=parseInt(a%1000/100);
f=parseInt(a%100/10);
g=parseInt(a%10);
alert(d==g && e==f );
}else if(a>=100){
e=parseInt(a/100);
g=parseInt(a%10);
alert(e==g);
}
</script>
//连续录入五个人的成绩,计算最大成绩 最小成绩和平均成绩。
<script type="text/javascript">
var a= Number(prompt("成绩1"));
var b= Number(prompt("成绩2"));
var c= Number(prompt("成绩3"));
var d= Number(prompt("成绩4"));
var f= Number(prompt("成绩5"));
var max;
var min;
var pj;
max= a>b ? a:b;
max= max>c ? max:c;
max= max >d ? max:d;
max=max > f ? max:f;
min=a<b? a:b;
min=min <d ? min:d;
min=min <c ? min:c;
min=min <d ? min:d;
pj=(a+b+c+d+f)/5;
alert(max);
alert(min);
alert(pj);
</script>
判断a是不是能被3 5 7 整除 考虑同时整除情况
//1/
var a=Number(prompt("请输一个数:"));
if(a%3==0){
if(a%5==0 && a%7==0){
alert("能同时被357整除");
}else{
alert("被3整除");
}
}else{
alert("不能被3整除");
}
if(a%5==0){
alert("被5整除");
}else{
alert("不能被5整除");
}
if(a%7==0){
alert("被7整除");
}else{
alert("不能被7整除");
}
//2/
var a=Number(prompt("请输一个数:"));
if(a%3==0 && a%5==0 && a%7==0){
alert("能同时被357整除");
}else if(a%3==0){
alert("被3整除");
}else if(a%5==0){
alert("被5整除");
}else if(a%7==0){
alert("被7整除");
}else {
alert("不能被357整除");
}
输入考试成绩,显示所获奖励。成绩==100分,
爸爸给他买辆车。成绩>=90分,
妈妈给他买MP4。90分>成绩>=60分,
妈妈给他买本参考书。成绩<60分,什么都不买
var score=prompt("成绩是多少");
if(score==100){
alert("爸爸给他买辆车");
}else if(score>=90){
alert("妈妈给他买MP4");
}else if(score>=60){
alert("妈妈给他买本参考书");
}else if(score<60){
alert("什么都不买 ");
两个数a、b,如果a能被b整除或a加b大于1000,则输出a,否则输出b
var a=prompt("请输入a");
var b=prompt("请输入b");
if(a%b==0 || a+b>1000){
alert("a");
}else{
alert("b");
}
打印某年某月有多少天
var year=(prompt("请输入年"));
var moth=(prompt("请输月"));
switch(moth){
case "1":
case "3":
case "5":
case "7":
case "8":
case "10":
case "12":
alert("31");
break;
case "4":
case "6":
case "9":
case "11":
alert("30");
break;
case "2":
if(year%4==0 && year%100==0 || year%400==0){
alert("该年的该月有29天")
}else{
alert("该年的该月有28天")
}
break;
}
如果数学成绩大于80分并且语文成绩大于80分,获奖学金500元。
如果数学小于30并且语文小于30分,输出重修。
var sx=prompt("数学成绩");
var yw=prompt("语文成绩");
if(sx>80&&yw>80){
alert("获奖学金500元。");
}else if(sx<30&&yw<30){
alert("重修");
}else{
alert("没有奖励没有处罚");
}