js学习-3(流程控制语句)
js学习-3(流程控制语句)
代码块
js中的代码块只是用来划分区域的,并没有区别作用域的功能。
即:在代码块内部的变量,在代码块外部仍然可以使用。
流程控制语句
流程控制语句主要包括:
- 顺序结构
- 选择结构:if语句、switch语句
- 循环结构:while语句、for语句
顺序结构:
顺序结构表示按照代码的先后顺序,依次执行。
选择结构:
if条件语句
1、条件判断语句:
if (条件表达式) { // 条件为真时执行的语句 }
2、条件分支语句:
if (条件表达式) { // 条件为真时执行的语句 } else { // 条件为假时执行的语句 }
3、if语句的嵌套:
实例:
一个加油站为了鼓励车主多加油,所以加的多有优惠。 92号汽油,每升6元;如果大于等于20升,那么每升5.9; 97号汽油,每升7元;如果大于等于30升,那么每升6.95 编写JS程序,用户输入自己的汽油编号,然后输入自己加多少升,弹出价格。
代码:
var sort = prompt("请输入您需要的汽油编号(92或97):"); var amount = Number(prompt("请输入您需要加油的数量(升):")); var price; if (sort=="92") { if(amount < 20){ price = amount * 6; alert("您需要付"+price+"元"); }else { price = amount * 5.9; alert("您需要付"+price+"元"); } } else { if(amount < 30){ price = amount * 7; alert("您需要付"+price+"元"); }else { price = amount * 6.95; alert("您需要付"+price+"元"); } }
switch语句
1、switch语句的格式:
switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; ... ... default: 语句体 n+1; break; }
2、switch的执行流程:
计算表达式的值,该值和case的值进行比较,一旦有对应的值就会执行该case下的语句,遇到break就会结束;若无case值与其相对应,则会执行default语句体部分。
3、switch语句的结束条件
1)遇到break就结束。此时break的作用就是退出switch语句。
2)执行到程序的末尾就结束。
4、case穿透的问题
当省略switch语句中的break时,会出现case穿透的问题。
case穿透是指当执行了与表达式值相同的case值下的语句之后,会继续执行之后的case情况,直到遇到break或者代码结束。很有可能造成和预想结果不一致。
注意:代码结束的地方是程序的末尾,并不是default所在的位置。即:switch语句的结束和default的顺序无关。
循环结构
循环语句:可以反复多次执行一段代码。
循环结构主要包括:for循环、while循环、do{ }while循环
for循环
语法:
for(①初始化表达式; ②条件表达式; ④更新表达式){ ③语句... }
执行流程:
1)执行初始化表达式,初始化变量
2)执行条件表达式,判断是否执行循环;如果为true,则执行循环,若无false,退出循环。
3)执行更新表达式,重复第二步。
for (var i = 1; i <= 100; i++) { console.log(i); }
while循环
语法:
while(条件表达式){ 语句 }
执行流程:
首先对条件表达式进行执行求值,
若值为true,则执行循环体的语句,
循环体执行完毕以后,继续判断条件表达式,以此类推
若值为false,则终止循环。
注:若有需要时,也可以用break来终止循环。
do{ }while循环
语法:
do{ 语句... }while(条件表达式)
执行流程:
1)首先执行一次循环体;
2)然后执行条件表达式,对其值进行判断,
若为true,则继续执行循环体,重复第二步;
若为false,终止循环;
while和do{ }while的区别
while是先判断后执行,do{ }while是先执行后判断。
注:do{ }while可以保证循环体至少执行一次。
break和continue
break:
- break可以用来退出switch语句或整个循环语句(循环语句包括for、while。不包括if。if里不能用 break 和 continue,否则会报错)。
- break会立即终止离它最近的那个循环语句。
- 可以为循环语句创建一个label,来标识当前的循环(格式:label:循环语句)。使用break语句时,可以在break后跟着一个label,这样break将会结束指定的循环,而不是最近的。
outer: for (var i = 0; i < 5; i++) { console.log("外层循环 i 的值:" + i) inner: for (var j = 0; j < 5; j++) { break outer; // 直接跳出outer所在的外层循环(这个outer是自定义的label) console.log("内层循环 j 的值:" + j); } }
continue:
continue可以用来结束当次循环;
contimue默认的也是作用于离它最近的地方。
- 学习笔记之JS(三、流程控制-语句)
- 【JS学习笔记】6.JavaScript流程控制语句-条件选择结构
- JS学习笔记03:JS流程控制语句
- JavaScript系统学习之一 <基本语法,运算符,流程控制语句>
- JS基础5-流程控制语句之条件(if、switch)
- C#基础学习——流程控制语句
- Java基础学习03 -- 运算符与流程控制语句
- 菜鸟前端日记5(原生JS--流程控制语句)
- python学习 流程控制语句详解
- T-SQL学习笔记-程序设计基础-流程控制语句
- js 中的流程控制-循环(for)语句
- PowerShell 学习(二):流程控制语句
- Linux学习之Shell--第三天:Shell流程控制-if语句
- Java SE学习笔记:运算符、流程控制语句、循环
- Python学习之4.2流程控制语句之条件控制二
- java学习笔记4——流程控制语句
- Shell学习笔记(11)-流程控制之select、until语句
- (转)SQL流程控制语句学习(一):变量及控制语句种类
- Kotlin学习笔记2-3 基础-流程控制语句
- JS流程控制语句