【笔记:JS基础】流程控制语句

流程控制语句

JS中的程序是从上到下一行一行执行的, 通过流程控制语句可以控制程序执行流程,使程序可以根据一定的条件来选择执行,流程控制语句分为以下三类:

  1. 条件判断语句:
  2. 条件分支语句:
  3. 循环语句:
  4. break和continue

一、条件判断语句

条件判断语句:
使用条件判断语句可以在执行某个语句之前进行判断,如果条件成立才会执行语句,条件不成立则语句不执行。

1.1、if语句

语法
if(条件表达式){
	语句...
}

注:

if语句在执行时,会先对条件表达式进行求值判断,如果条件表达式的值为true,则执行if后的语句,如果条件表达式的值为false,则不会执行if后的语句。if语句只能控制紧随其后的那个语句,如果希望if语句可以控制多条语句,可以将这些语句统一放到代码块中,if语句后的代码块不是必须的,但是在开发中尽量写上代码块,即使if后只有一条语句。

if(true)alert("这一句会执行") //因为条件表达式结果一直为true,所以该语句会陷入死循环。
var num=prompt("请输入一个数字")
if(num<10){  //当num获取到的数字小于10的时候会输出下面的语句
alert("这是一个小于10的数字")
}

1.2、if…else…语句

语法
if(条件表达式){
	语句...
}else{
	语句...
}

注:

if…else…语句:当该语句执行时,会先对if后的条件表达式进行求值判断,如果该值为true,则执行if后的语句,如果该值为false,则执行else后的语句。

var age=prompt("请您的年龄")
//判断一个年龄是否已经达到退休年龄
if(age >= 60){
	alert("你已经达到退休年龄了~~");
}else{
	alert("你年龄还小,不能退休~~~");
}

1.3、if…else if…else…语句

语法
if(条件表达式){
	语句...
}else if(条件表达式){
	语句...
}else if(条件表达式){
	语句...
}else{
	语句...
}

注:

if…else if…else语句:当该语句执行时,会从上到下依次对条件表达式进行求值判断,如果值为true,则执行当前语句,如果值为false,则继续向下判断,如果所有的条件都不满足,则执行最后一个else后的语句,该语句中,只会有一个代码块被执行,一旦代码块执行了,则直接结束语句。

var age=prompt("请您的成绩")
//判断考试成绩是否为优、良好、及格或者不及格
if(age > 85 && age <= 100){
	alert("优");
}else if(age > 70 && age <= 85){
	alert("良好");
}else if(age > 60 && age <= 70){
	alert("及格");
}else{
	alert("不及格~~");
}

二、条件分支语句

2.1、switch语句

语法
switch(条件表达式){
	case 表达式:
		语句...
		break;
	case 表达式:
		语句...
		break;
	default:
		语句...
		break;
}

注:

执行流程:
switch…case…语句:在执行时会依次将case后的表达式的值和switch后的条件表达式的值进行全等比较,如果比较结果为true,则从当前case处开始执行代码。
当前case后的所有的代码都会执行,我们可以在case的后边跟着一个break关键字,这样可以确保只会执行当前case后的语句,而不会执行其他的case,如果比较结果为false,则继续向下比较,如果所有的比较结果都为false,则只执行default后的语句。
switch语句和if语句的功能实际上有重复的,使用switch可以实现if的功能,同样使用if也可以实现switch的功能,所以我们使用时,可以根据自己的习惯选择。

var num=prompt("请一个数字")
switch(num){
	case 1:
		console.log("壹");
		//使用break可以来退出switch语句
		break;
	case 2:
		console.log("贰");
		break;
	case 3:
		console.log("叁");
		break;
	default:
		console.log("非法数字~~");
		break;
}
//使用if…else if…else…语句实现switch语句
if(num == 1){
	console.log("壹");
}else if(num == 2){
	console.log("贰");
}else if(num == 3){
	console.log("叁");
}else{
	console.log("非法数字~~");
}

三、循环语句

通过循环语句可以反复的执行一段代码多次

3.1、while语句

语法
while(条件表达式){
	语句...
}

注:

while语句在执行时,先对条件表达式进行求值判断,如果值为true,则执行循环体,循环体执行完毕以后,继续对表达式进行判断,如果为true,则继续执行循环体,以此类推,如果值为false,则终止循环。

//创建一个循环,往往需要三个步骤			
//1.创初始化一个变量
var i = 0;
//2.在循环中设置一个条件表达式
while(i <= 10){
	//3.定义一个更新表达式,每次更新初始化变量
	document.write(i++ +"<br />")	
}

3.2、do…while…循环

语法
do{
	语句...
}while(条件表达式)

注:

执行流程:
do…while语句在执行时,会先执行循环体,循环体执行完毕以后,在对while后的条件表达式进行判断,如果结果为true,则继续执行循环体,执行完毕继续判断以此类推,如果结果为false,则终止循环。

var i = 11;
do{
	document.write(i++ +"<br />");
}while(i <= 10);
while语句和do…while语句的区别:

实际上这两个语句功能类似,不同的是while是先判断后执行,而do…while会先执行后判断,do…while可以保证循环体至少执行一次而while不能。

3.3、for循环语句

for语句,也是一个循环语句,也称为for循环
在for循环中,为我们提供了专门的位置用来放三个表达式:
1.初始化表达式
2.条件表达式
3.更新表达式

语法
for(①初始化表达式;②条件表达式;④更新表达式){
	③语句...
}

注:

for循环的执行流程:
①执行初始化表达式,初始化变量(初始化表达式只会执行一次)
②执行条件表达式,判断是否执行循环。
如果为true,则执行循环③
如果为false,终止循环
④执行更新表达式,更新表达式执行完毕继续重复②

for(var i = 0 ; i < 10 ; i++ ){
	alert(i);
}

for循环中的三个部分都可以省略,也可以写在外部
如果在for循环中不写任何的表达式,只写两个分号
此时循环是一个死循环会一直执行下去,慎用

for(;;){
	alert("hello");
}
/*
 * 打印1-100之间所有7的倍数的个数及总和
 */
//定义一个变量,来保存总和
var sum = 0;
//定义一个计数器,来记录数量
var count = 0;			
//打印1-100之间所有的数
for(var i=1 ; i<=100 ; i++){	
	//判断i是否是7的倍数
	if(i % 7 == 0){
		//console.log(i);
		sum += i;
		//使计数器自增1
		count++;	
	}	
}			
//输出总和
console.log("总和为:"+sum);
//输出总数
console.log("总数量为:"+count);
/*
水仙花数是指一个3位数,它的每个位上的数字的3 次幂之和等于它本身。
(例如:1^3 + 5^3 + 3^3 = 153),请打印所有的水仙花数。
 */			
//打印所有的三位数
for(var i=100 ; i<1000 ; i++){	
	//获取i的百位 十位 个位的数字
	//获取百位数字
	var bai = parseInt(i/100);	
	//获取十位的数字
	var shi = parseInt((i-bai*100)/10);	
	//获取个位数字
	var ge = i % 10;	
	//判断i是否是水仙花数
	if(bai*bai*bai + shi*shi*shi + ge*ge*ge == i){
		console.log(i);
	}
}			
/*
 * 1.打印99乘法表
 * 	 1*1=1
 * 	 1*2=2 2*2=4
 * 	 1*3=3 2*3=6 3*3=9
 * 	 1*4=4 2*4=8 3*4=12 4*4=16	
 * 						....9*9=81
 * 
 * 2.打印出1-100之间所有的质数
 */			
//创建外层循环,用来控制乘法表的高度
for(var i=1 ; i<=9 ; i++ ){
	//创建一个内层循环来控制图形的宽度
	for(var j=1 ; j<=i ; j++){
		document.write("<span>"+j+"*"+i+"="+i*j+"</span>");
	}
	//输出一个换行
	document.write("<br />");	
}

四、break和continue

break关键字

break关键字可以用来退出switch或循环语句,不能在if语句中使用break和continue,break关键字,会立即终止离他最近的那个循环语句。

for(var i=0 ; i<5 ; i++){
	console.log(i);
	if(i == 2){
		break;
	}	
}

可以为循环语句创建一个label,来标识当前的循环。
label:循环语句:使用break语句时,可以在break后跟着一个label,这样break将会结束指定的循环,而不是最近的。

outer:
for(var i=0 ; i<5 ; i++){
	console.log("@外层循环"+i)
	for(var j=0 ; j<5; j++){
		break outer;  //终止外层循环outer
		console.log("内层循环:"+j);
	}
}

continue关键字

continue关键字可以用来跳过当次循环,同样continue也是默认只会对离他最近的循环循环起作用。

for(var i=0 ; i<5 ; i++){
	if(i==2){
		continue;
	}	
	console.log(i);
}
发布了20 篇原创文章 · 获赞 11 · 访问量 1749

猜你喜欢

转载自blog.csdn.net/qq_16221009/article/details/102983759