# 流程控制
# 浏览器端函数
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(表达式){ //通常是一个变量
case 值1: //如果表达式的值为 值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:增量
break 和 continue
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中的函数,作用域