分支结构
- 我们的js代码都是顺序执行的(从上到下)
- 逻辑分支就是根据我们设定好的条件来决定要不要执行某些代码
1、条件分支语句-if
1、if语句
- 通过一个if语句来决定代码是否执行
- 语法:if(条件){ 要执行的代码 }
- 通过()里面的条件是否成立来决定{}里面的代码是否执行
2、if-else语句
- 通过if条件来决定,执行哪一个{}里面的代码
- 语法:if(条件){ 条件为true的时候执行} else{ 条件为false的时候执行}
- 两个{}内的代码一定有一个会执行
<script> var sum=210 var youhuisum if(sum>200){ youhuisum=sum-10 } else{ youhuisum=sum } console.log(sum,youhuisum) </script>
3、if-else if...语句
- 可以通过if和else if来设置多个条件进行判断
- 语法:if(条件1){ 条件1位true的时候执行} else if(条件2){ 条件2位true的时候执行}
- 会从头开始一次判断条件
如果第一个条件为true,那么就会执行后面的{}里面的内容
如果第一个条件为false,那么就会判断第二个条件,依次类推
- 多个{},只会有一个被执行,一旦有一个条件为true了,后面的就不再判断了。
<script> var sum=120 var youhuisum if(sum>200){ youhuisum=sum-10 } else if(sum>100){ youhuisum=sum-5 } else if(sum>50){ youhuisum=sum-3 } else if(sum<50){ youhuisum=sum } console.log(sum,youhuisum) //输出120 115 </script>
4、if -else if...else语句
- 和之前if-else if...基本一致,只不过是在所有条件都不满足的时候,执行最后else后面的{}
- 只要前面有一个条件满足了,那么后面的就不会执行了
<script> var sum=10 var youhuisum if(sum>200){ youhuisum=sum-10; } else if(sum>100){ youhuisum=sum-5 } else if(sum>50){ youhuisum=sum-3 } else{ youhuisum=sum } console.log(sum,youhuisum); //输出10 10 </script>
2、if案例
1、判断奇偶数
<script> //1、判断奇数偶数 //数学:能整除2的就是偶数,否则就是奇数 var n=10; if(n%2===0){ console.log("偶数") } else{ console.log("奇数") } </script>
<script> //1、判断奇数偶数 //数学:能整除2的就是偶数,否则就是奇数 var n=7; if(n%2){ console.log("奇数") } else{ console.log("偶数") } </script>
<script> //1、判断奇数偶数 //数学:能整除2的就是偶数,否则就是奇数 var n=7; if(!(n%2)){ console.log("偶数") } else{ console.log("奇数") } </script>
2、根据0-100的数字输出成绩
<script> // 2、根据0-100的数字输出成绩 //90-100 输出A //80-90 B //70-80 C //60-70 D //0-60 E var score=89; if(score>=90){ console.log("A") } else if(score>=80){ console.log("B") } else if(score>=70){ console.log("C") } else if(score>=60){ console.log("D") } else{ console.log("E") }
3、判断闰年
<script> //判断闰年 //什么是闰年 //世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年 //year%400 //普通闰年:公历年份是4的倍数,且不是100的倍数的 // year%4===0 && year%100!=0 var year=2000 // &&的优先级比||优先级高 if(year%400===0 || year%4===0 && year%100!=0){ console.log("闰年") } else{ console.log("平年") } </script>
3、条件分支语句-switch
switch条件分支结构
- 也是条件判断语句的一种
- 是对于某一个变量的判断
- 要判断某一个变量等于某一个值得时候使用
语法:switch(要判断的变量){
case 情况1:
情况1要执行的代码
break
case 情况2:
情况2要执行的代码
break
case 情况3:
情况3要执行的代码
break
default:
上述情况都不满足的时候执行的代码
}
<script> // 订单状态码 // 1 未付款 // 2 已付款 // 3 已发货 // 4 已完成 var code=5 switch(code){ case 1: document.write("未付款") break; case 2: document.write("已付款") break; case 3: document.write("已发货") break; case 4: document.write("已完成") break; default: document.write("出错了") } </script>
- 注意:
- 1、===
- 2、尽量不要比较运算符
- break必须写
4、switch案例
1、案例1(满减)
<script> //满200减10 满100减5 满50减3 var sum=220 var youhuisum switch (true) { case sum>=200: youhuisum=sum-10 break; case sum>=100 && sum<200: youhuisum=sum-5 break case sum>=50 && sum<100: youhuisum=sum-3 break; default: youhuisum=sum break; } document.write(youhuisum) </script>
2、案例2(打印月份天数)
<script> // 根据1~12的数字来输出一个月有多少天,不考虑闰年 var month=1 switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: document.write("31") break; case 2: document.write("28") break; case 4: case 6: case 9: case 11: document.write("30") break; default: break; } </script>
3、案例3(打印成绩)
<script> var score=70; var flagScore = parseInt(score/10) switch (flagScore) { case 10: case 9: document.write("A") break; case 8: document.write("B") break; case 7: document.write("C") break; case 6: document.write("D") break default: document.write("不及格") break; } </script>
5、循环分支语句-while
循环结构
- 循环结构,就是根据某些给出的条件,重复的执行同一段代码
- 循环必须要有某些固定的内容组成
1、初始化
2、条件判断
3、要执行的代码
4、自身改变
while循环
- while,中文叫当...时,其实就是当条件满足时就执行代码,一旦不满足了就不执行
- 语法:while(条件){ 满足条件就执行 }
- 因为满足条件就执行,所以我们写的时候一定要注意,就是设定一个边界值,不然就一直循环下去了
6、while案例
1、案例1 求1~100所有数字的和 5050
<script> // 案例1 求1~100所有数字的和 5050 var n=1; var sum=0; while(n<=100){ // console.log(n) sum=sum+n; n++; } console.log(sum) </script>
2、案例2 求一个数字的阶乘5*4*3*2*1
<script> var n=3 var sum=1 while(n>0){ sum*=n n-- } console.log(sum) </script>
7、循环分支语句-dowhile
dowhile
- 是一个和while循环类似的循环
- while会先进行条件判断,满足就执行,不满足直接就不执行了
- 但是dowhile循环是,先不管条件,先执行一回,然后再开始进行条件判断
- 语法:do{ 要执行的代码 }while(条件)
8、dowhile案例
1、案例1 求1~100的和
<script> var n=1; var sum=0; do{ sum=sum+n; n++ }while(n<=100) console.log(sum) </script>
2、案例2
<script> do{ var res=prompt("请输入你的名字") if(res){ console.log(res) } }while(!res) </script>
9、循环分支语句-for
for循环
- 和while和dowhile循环都不太一样的一种循环结构
- 道理是和其他两种一样的,都是循环执行代码的
- 语法:for(var i=0;i<=10;i++){ 要执行的代码 }
10、for案例
1、案例1
<script> var sum=0; for(var i=0;i<=100;i++){ sum=sum+i } console.log(sum) </script>
2、案例2 1000-2000年闰年
方法一:
<script> for(var n=1000;n<=2000;n++){ if(n%400===0 || n%4===0 && n%100!==0){ document.write(n+" ") } } </script>
方法二:
<script> for(var n=1000;n<=2000;n+=4){ if(n%400===0 || n%100!==0){ document.write(n+" ") } } </script>
11、循环控制语句
break终止循环
- 在循环没有进行完毕的时候,因为我设置的条件满足,提前终止循环
- 比如:我要吃五个包子,吃到三个的时候,不能再吃了,我就停止了吃包子这个事情
- 要终止循环,就可以直接使用break关键字
continue结束本次循环
- 在循环中,把循环的本次跳过去,继续执行后面的循环
- 比如:吃五个包子,吃到第三个的时候,第三个掉到地下了,不吃了,跳过第三个,继续吃第四个第五个
- 跳过本次循环,就可以使用continue关键字
12、案例1-求质数
<script> //求质数 // 质数:除了1和自己本身以外,没有其他约数 // 3 5 7 11 13 17 ..... var n=5; var isZhiShu =true for(var i=2;i<n;i++){ if(n%i===0){ isZhiShu=false break } console.log(i) } if(isZhiShu){ console.log("is") } else{ console.log("not") } </script>
13、案例2-九九乘法表
<style> span{ display: inline-block; width: 80px; } </style> <script> for(var m=1;m<=9;m++){ for(var n=1;n<=m;n++){ document.write("<span>"+m+"*"+n+"="+m*n+"</span>") } document.write("<br>") } </script>