2、流程语句

流程语句

三大流程语句

1、顺序结构
2、条件/选择/分支
3、循环

1、顺序结构:

概念:从上朝下执行的代码就是顺序
image

			例子:num1 = 10; num2 = 20; 这两个数的位置进行交换。
		var num1 = 10;
		var num2 = 20;
		// 中间变量
		var tmp = num1;
		num1 = num2;
		num2 = tmp;
		alert("num1: " + num1 + "num2: " + num2);

2、条件/选择/分支

image

if 语句
/*
单分支语句
格式:
  if(判断条件)
    执行语句;
究极版本:
  if(判断条件){
    执行语句;
    ...
}
功能:如果if中判断条件为true,就直接去执行紧跟着if语句后面的一条语句,否则如果为false,就不去执行紧跟着if语句后面的这条语句。
【注】if语句仅能控制它后面的一条语句是否能被执行。  
大括号:
{}  
作用:使用大括号,括起来的多条语句,可以当做一条语句去执行。
*/

/*          var num = 7;
			if(num % 2 == 0){
				alert("这是一个偶数");
				alert(1);
			}*/

			/*
				求两个数的最大数
			*/
			/*var num1 = 10;
			var num2 = 20;
			if(num1 > num2){
				alert(num1);
			}

			if(num1 < num2){
				alert(num2);
			}*/

			/*var num1 = 10;
			var num2 = 20;
			if(num1 > num2){
				alert(num1);
			}else{
				alert(num2);
			}*/

/*
双分支语句
格式:
if(判断条件){
  判断条件true,执行语句;
}else{
  判断条件false, 执行语句;
}
*/

/*var num = 7;
			if(num % 2 == 0){
				alert("这是一个偶数");
			}else{
				alert("这是一个奇数");
			}*/

/*
多分支语句
格式:
if(判断语句1){
  执行语句1;
}else if(判断语句2){
  执行语句2;
}...
else{
当上述条件都不成立的时候执行;
}
*/

            /*var x = 11;
			var y = 0;
			if(x < 1){
				y = x;
			}else if(x >= 1 && x < 10){//1<=x<10
				y = 2 * x + 1;
			}else{
				y = 5 * x - 17;
			}
			alert(y);*/

			/*
				闰年
				1、能被400整除
				2、能被4整除但是不能被100整除
			*/

3、switch多分支语句

/*
多分支语句
格式:
switch(表达式){
  case 值1:
    执行语句1;
    break;
  case 值2:
    执行语句2;
    break;
  ...
  default:
    上述所有条件都不符合,执行这里;
    break;
}
流程:++判断表达式的结果,和case后面值进行匹配,匹配成功以后,执行该值对应的执行语句。++
1、如果判断结果是确定的值,优先使用swtich语句。
2、swtich语句运行效率比if语句的运行效率高。
注意:
1、break一定不能省略,事件会被穿透。
2、default必须要写。
*/

/*          var grades = "E";
			switch(grades){
				case "A":
					alert("80~100");
					break;
				case "B":
					alert("70~80");
					break;
				case "C":
					alert("60~70");
					break;
				case "D":
					alert("<60");
					break;
				default:
					alert("error");
					break;
			}*/

练习:利用case穿透简化代码

/*
				2.输入月份,显示当月的天数
					要求:1) 利用 case穿透简化代码
			*/
			var month = 2;
			var year = 2018;

			switch(month){
				case 1:
				case 3:
				case 5:
				case 7:
				case 8:
				case 10:
				case 12:
					alert("31天");
					break;
				case 2:
					//判断是否是闰年
					if(year % 400 == 0 || year % 4 == 0 && year % 100 != 0){
						alert("29天");
					}else{
						alert("28天");
					}
					break;
				default:
					alert("30天");
					break;
			}

4、三目运算符

/*
三目运算符
格式:
  表达式1 ? 表达式2 : 表达式3;
功能:先去判断表达式1是否为true,如果为true,执行表达式2,否则执行表达式3。
*/

/*var num = 9;

			num % 2 == 0 ? alert("这是一个偶数") : alert("这是一个奇数");*/

			/*if(num % 2 == 0){
				alert("这是个偶数");
			}else{
				alert("这是个奇数");
			}*/

5、循环语句

image

/*
循环
while 循环
do while 循环
for 循环

*/

/*
1、while循环
格式:
  while(循环条件){
    循环语句;
   }
功能:先去判断循环条件是否成立,如果成立执行循环语句,知道循环条件不成立的时候,循环终止。
*/

/*
				1 ~ 100的和
			*/
			var i = 1;
			var sum = 0;
			while(i <= 100){
				sum += i;
				i++; //每一次循环,都会进行+1操作。
			}
			alert(sum);

			document.write("1<br />2");

习题

/*
				1、打印100以内 7的倍数
				2、打印100以内的奇数
				3、打印100以内所有偶数的和
				4、打印图形
				* * * * * * * * * *
				* * * * * * * * * *
				* * * * * * * * * * 
				* * * * * * * * * *

			*/

			/*
				【注】小心造成死循环
			*/
			/*var i = 1;
			var sum = 0;
			while(i <= 100){
				// if(i % 7 == 0){
				// 	document.write(i + "<br />");
				// }

				if(i % 2 != 0){
					document.write(i + "<br />");
				}else{
					sum += i;
				}
				i++;
			}

			alert(sum);*/


			var i = 1;
			while(i <= 40){
				document.write("*");
				if(i % 10 == 0){
					document.write("<br />");
				}
				i++;
			}

/*
2、do...while循环(了解)
格式:
  do{
    循环体
   }while(循环条件);
【注】最后一定要加分号,会有出错隐患
【注】不管循环条件是否成立,先去运行一次再说。
*/

		 var i = 1; 
		 var sum = 0; //用于记录累加的和
		/*do{
			sum += i;
			i++;
		}while(i <= 100);*/
		// alert(sum);

		/*while(i <= 100){
			sum += i;
			i++;
		}
		alert(sum);*/
	
	
		var i = 5;
		while(i > 10){
			alert("while");
		}
		do{
			alert("do while");
		}while(i > 10);

/*
【总结】1、循环条件仔细斟酌。(经验,慢慢来)
2、代码规范
3、运算符前后+空格,逗号、分号还有别的语句,加一个空格。
*/

/*
3、for循环
格式:
  for(表达式1; 表达式2; 表达式3){
    循环语句;
  }
功能:
1、先去执行表达式1,有且只执行一次。
2、判断表达式2,如果true,执行循环语句,否则终止
3、执行表达式3,再去判断表达式2,重复2,3操作。
*/

// 1 ~ 100和
			/*
				表达式1:循环初始变量
				表达式2:循环条件
				表达式3:累加
			*/
			/*var i = 1;
			var sum = 0;
			while(i <= 100){
				sum += i;
				i++;
			}*/
			var sum = 0;
			for(var i = 1; i <= 100; i++){
				sum += i;
			}
			alert(sum);

/*
for循环使用频率是最高的。
*/

练习

打印三角形:
/*
习惯上是从0开始的。
循环的时候,初始值也要从0开始。
*/

/*
				1、打印五行
					    半角 占一个字符的大小
				&ensp;  全角 占一个汉字的大小 = 两个半角


				【注】循环变量 i j k 
			*/
			for(var i = 0; i < 5; i++){

				//打印# 总行数 - 当前圆圈数
				for(var k = 0; k < 5 - i - 1; k++){
					document.write("#");
				}

				//2、打印当前圆圈的个数打印出来  ○
				for(var j = 0; j <= i; j++){
					document.write("○");
				}
				document.write("<br />");
			}

			/*
				5行
				第0行  4个空格 1个圆圈
				第1行  3个空格 2个圆圈
			*/

image

break与continue

/*
对于switch break 防止条件语句穿透。
*/

/*
循环中
break:
功能:终止当前循环,只能终止当前一层循环。

continue:
功能:跳过这次循环,直接入下一次循环。
*/

/*
				当循环到5,结束循环
			*/
			/*for(var i = 0; i < 100; i++){
				if((i + 1) == 5){
					break;
				}
				document.write((i + 1) + "<br/>");
			}*/

			for(var i = 0; i < 100; i++){
				if((i + 1) == 5){
					// break;
					continue;
				}
				document.write((i + 1) + "<br/>");
			}

死循环 与 不规范循环写法

/*
				死循环  停不下来
				【注】循环条件永远成立。
			*/
			/*while(true){

			}*/

			/*while(1){
				
			}*/


			/*for(;;){

			}*/

			/*
				不规范的for循环
			*/
			for(var i = 0; i < 100; i++){

			}

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

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

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

补充

/*
赋值运算符
= 赋值
被赋值的变量 = 表达式;

			关系运算
			== !=  ===(全等/恒等)值和数据类型都相等  !==

			基本数据类型:
			number: 数字
			string: 字符串
			boolean: 布尔值 

			null
		*/
		var num = null;
		var num = 0;

		/*
			switch语句 更侧重于匹配
			if 语句    更侧重于判断
		*/
		/*
			【注】问问题一定要具体到问题的某一个点。
		*/
打印一行五个数,五行
            var tmp = 1;

			for(var i = 0; i < 5; i++){
				//循环五次打印五个数
				for(var j = 0; j < 5; j++){
					document.write(tmp + " ");
					tmp++;
				}
				document.write("<br />");
			}

习题

/*			1、输入年月日,输出当前年第几天。

				2018.05.17
				month 
			*/
			var year = 2018;
			var month = 5;
			var date = 17;
			var currentDay = 0;
			switch(month){
				case 12:
					currentDay += 30;
				case 11:
					currentDay += 31;
				case 10:
					currentDay += 30;
				case 9:
					currentDay += 31;
				case 8:
					currentDay += 31;
				case 7:
					currentDay += 30;
				case 6:
					currentDay += 31;
				case 5:
					currentDay += 30;
				case 4:
					currentDay += 31;
				case 3:
					currentDay += 28;
				case 2:
					currentDay += 31;
				case 1:
					currentDay += date;
					break;
				default:
					alert("error");
					break;
			}
			if(month > 2){
				//判断闰年
				
			}

			alert(currentDay);
posted @ 2018-07-06 20:40  飞刀还问情  阅读(214)  评论(0编辑  收藏  举报