# 流程控制

# 浏览器端函数

alert() 弹出警示(消息)框

prompt() 弹出提示(输入)框,需要使用变量来保存输入的值,类型默认是字符串类型,如果输

入框中内容为空,返回空字符(''),如果点击取消返回 null

练习:两次弹出提示框,输入数字,计算两个数字相加,打印结果。

程序 = 数据 + 算法

程序分为顺序执行、选择执行、循环执行

# 流程控制——选择执行

# if语句

if(条件表达式){
  // 语句1;
}

// 语句2

if 后的大括号中如果只有一行语句,则可以省略大括号

# if-else语句

if(条件表达式){
  // 语句1;
}else{
  // 语句2;
}

// 在条件表达式中,有一些值默认代表false
// 0  NaN  ''  undefined   null

练习:弹出两次提示框,分别输入商品的单价和数量,获取总价,如果总价满1000打九折;假如卡内余额800,如果余额大于等于商品总额,警示框弹出'pay success',否则警示框弹出'pay error'

# if-else嵌套

if(条件表达式1){
  // 语句1
}else ... if(条件表达式n){
  // 语句n;
}else{
  // 语句n+1; // 以上所有的条件表达式都为false
}

# switch-case

是一种特殊的多项分支语句

switch(表达式){ //通常是一个变量
  case1:  //如果表达式的值为 值1
  //  语句1;
   break;
  ...
  default:
  //  语句n+1; //如果表达式的值和case中的每个值比较都是false
}

// 表达式在和case后的值比较的时候,使用的是全等于,要求值和类型都相同

对比if-else嵌套和switch-case的区别

提示

相同点:两者都可以用于多项分支语句
不同点:if-else可以判断相等或者不等的情况,使用范围更广泛;switch-case只能用于全等于的比较,结构上更为清晰合理,执行效率更高。

# 循环

循环:就是一遍又一遍执行相同或者相似的代码

循环的两个要素

提示

循环的条件:循环的次数
循环体:重复执行的相同或者相似代码

# while循环

while(循环条件){
  // 循环体
}
  • break

在循环中,可以提前结束任何形式的循环

练习

声明变量保存任意一个数字,无限循环弹出提示框,并输入数字,如果输入的数字大于保存的数字,弹出警示框提示'big',如果输入的数字小于保存的数字,弹出警示框提示'small',否则弹出警示框提示'right',结束循环。

isNaN() 判断一个值是否为NaN 是->true 不是->false

# do-while 循环

do{
  // 循环体
}while(循环条件);

// 先执行一遍循环体,然后再判断循环条件,即使循环条件为false,也会执行一遍循环体。
练习

声明变量保存123456,循环弹出提示框输入密码,如果输入正确结束循环。

# for循环

for(表达式1; 表达式2; 表达式3){
  // 循环体
}

// 表达式1:初始值
// 表达式2:循环条件
// 表达式3:增量

breakcontinue
break: // 结束循环,后续不会再执行后续的循环
continue: // 跳过后边的循环体,继续执行增量,也就是下一次循环

练习

计算1~100之间所有偶数的和,如果遇到奇数跳过

# 循环嵌套

任何的循环之间可以相互嵌套

for(var i = 0 ; i <= 9 ; i++){
  for(var j = 1; j < i + 1; j++){
    document.write(j + "*" + i + "=" + i * j);
    // document.write(`${j} "*" ${i} = ${i * j}`);
  }
  document.write("<br />");
}

# 课后任务

练习
  • 打印本世纪(2000~2100)前10个闰年
  • 计算1~100之间所有整数的和,当和大于4000的时候,提前结束循环,并打印当前的和
  • 打印九九乘法表
  • 预习JS中的函数,作用域