Skip to content

分支结构

1.流程控制语句

在JS中,程序执行的单位是行,也就是程序是一行一行的执行的,一般情况下一条语句就是一行。当然,你也可以将多条语句写在一行,但是不推荐大家这么做,因为这样写代码的可读性会降低。

程序的三大结构(了解) 顺序结构 选择结构 循环结构

1.1 顺序结构

console.log("hello");
console.log("hello2");
console.log("hello3");

1.2 分支结构

分支结构(也叫选择结构)根据不同的情况,执行对应的代码

1.3 循环结构

循环结构:重复做一件事情

2.if语句

2.1 if

if语句会先判断一个条件表达式的布尔值,然后根据该值决定是否执行某些特点的语句。

语法

js
if(条件表达式){
    // 语句...(当条件成立的时候就会执行大括号里面的代码)
}
//或者
if(条件表达式) //语句...
    // 当{}中只有一条语句的时候可以省略{}

上面的代码可以使用简略的写法,但是不建议咱们同学这么做(因为是新手)。

js
if(10<20){// 表达式结果为true
    console.log('我执行了!');// 会执行
}
console.log('我总会执行');


if(10>20){// 表达式结果为false
    console.log('我执行了!');// 不会执行
}
console.log('我总会执行');

练习:输入一个整数判断是不是偶数(注:通过prompt语法 输入框)

js
// 输入一个整数判断是不是偶数(注:通过prompt语法  输入框) 

// 思路
// 1. 接受输入的数据
// 2. 判断  数字 % 2 == 0   偶数  奇数


// 1. 接受输入的数据
var data = prompt("请输入一个整数");
console.log(data);
// 2. 判断  数字 % 2 == 0   偶数  奇数
if (data % 2 == 0) {
    alert("偶数")
}

2.2 if...else...

有时候我们会遇到有两个选项必须选择其中一个的时候可以使用if...else结构。

语法

js
if(条件表达式){
    // 条件成立 走第一个大括号代码
} else {	
    // 条件不成立  走第二个大括号代码
}

练习:输入一个整数判断是奇数还是偶数(注:通过prompt语法)

js
// 输入一个整数判断是奇数还是偶数(注:通过prompt语法)

// 1. 接受用户输入的数据
var data = prompt("请输入一个整数?")
console.log(data)
// 2. 判断  条件  数据 % 2 == 0 偶数  奇数
// if (data%2==0) { // 留心:两个等于

var rs = data%2==0   // 比较的结果
if (rs) { // 结果 真   假
    alert("偶数")
} else {
    alert("奇数")
}

2.3 if...else if...

我们也会遇到多个选择条件,这时候使用简简单单的if..else就不能很好的解决问题了,所以JS语言还为我们准备了多重if结构。

语法

js
if(表达式1){
    console.log('表达式1为真我执行');
}else if(表达式2){
    console.log('表达式2为真我执行');
}else if(表达式3){
    console.log('表达式3为真我执行');
}else{
    console.log('他们都不执行我就执行');
}

//留心:只要有一个条件成立了,后续代码就不走了!!!

练习

输入一个成绩判断该成绩属于哪个分类 90分及以上,优秀; 80分及以上,良好 70分及以上,一般 60分及以上,及格 60分以下,不及格

javascript
// 输入一个成绩判断该成绩属于哪个分类
// 90分及以上,优秀;
// 80分及以上,良好 
// 70分及以上,一般 
// 60分及以上,及格 
// 60分以下,不及格   

// 1. 声明变量 存放成绩  score   cj
// 2. 判断成绩

// 1. 声明变量 存放成绩  score   cj
var score = prompt("请输入成绩")
// 2. 判断成绩
if (score >= 90) {
    alert("优秀")
} else if (score >= 80) {
    alert("良好 ")
} else if (score >= 70) {
    alert("一般 ")
} else if (score >= 60) {
    alert("及格 ")
} else {
    alert("不及格")
}

3.switch条件分支结构

我们再看选择结构中最后一个switch。Switch结构和if...else if...else结构非常像,它们都能够进行对变量的多次判断并给出相应的处理方案。

语法

js
switch(要判断的变量){
	case 值1:    
        // 值1成立,执行的代码
        break;
    case 值2:    
        // 值2成立,执行的代码
        break;
    case 值3:    
        // 值3成立,执行的代码
        break;
    default:
            // 以上都不成立执行的代码
}
  • switch语句中break是必须的,如果缺失了break就会发生switch穿透

switch穿透是指当switch语句中某一个case被匹配到并且该case下的语句会被执行,当case部分逻辑执行完毕之后如果没有break的话就会一直往下一个case匹配。也就是说在switch语句中当case被匹配到,程序只有遇到break才会跳出switch。

  • switch、case、default都是系统关键词
  • switch常用于固定值判断

练习

需求: 根据变量给出的数字显示是星期几

代码:

javascript
// 需求: 根据变量给出的数字显示是星期几
// 代码

// 1.声明变量
var day = 2 // 1 2 3 4 5 6 7
// 2.判断
switch (day) {
    case 1:
        console.log('星期1')
        break;
    case 2:
        console.log('星期2')
        break;
    case 3:
        console.log('星期3')
        break;
    case 4:
        console.log('星期4')
        break;
    case 5:
        console.log('星期5')
        break;
    case 6:
        console.log('星期6')
        break;
    case 7:
        console.log('星期天')
        break;
    default:
        console.log('你确定你是地球人!!!')
        break;
}

4.switch判断和if判断的区别

if常用于范围判断(思考:可不可以写固定值判断,回答:可以 根据你写的运算符来决定 ==)

switch常用于固定值判断(其他了解:也可以范围判断、当条件true 全等判断

验证支持范围判断

js
// 输入一个成绩判断该成绩属于哪个分类
// 90分及以上,优秀;
// 80分及以上,良好 
// 70分及以上,一般 
// 60分及以上,及格 
// 60分以下,不及格   

// 1. 定义变量存放成绩
var score = 5
// 2. 判断 了解
switch (true) {
 case score>=90:
      console.log('优秀')
      break;
  case score>=80:
      console.log('良好')
      break;
  case score>=70:
      console.log('一般')
      break;
  case score>=60:
      console.log('及格')
      break;
  case score>=0:
      console.log('不及格')
      break;
  default:
      console.log('有瑕疵')
      break;
}

验证固定值判断的是全等

js
// 验证:全等
var num = 1
switch (num) {
	// case 1:
 case '1':
      console.log(111)
      break;
  case 2:
      console.log(222)
      break;
  default:
      console.log(666)
      break;
}

验证:break不写就会出现问题 case穿透 90%都加

js
// 验证:case穿透
var num = 1
switch (num) {
 case 1:
   console.log(111)
      // break;
  case 2:
      console.log(222)
      // break;
  case 3:
      console.log(333)
      // break;
  default:
      console.log(666)
      break;
}

5.三元运算

语法

三元运算:顾名思义就是有三个操作组成(注:两个符号)

语法:

js
条件 ? 操作1 : 操作2

如果条件成立,执行操作1

如果条件不成立,执行操作2

MIT Licensed