• 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);
    
  • 相关阅读:
    C# 中的委托和事件
    POJ题目分类
    A*算法
    Poj 1077 eight(BFS+全序列Hash解八数码问题)
    Poj 2304 Combination Lock(模拟顺、逆时钟开组合锁)
    Poj 2247 Humble Numbers(求只能被2,3,5, 7 整除的数)
    Poj 2328 Guessing Game(猜数字游戏)
    Poj 2403 Hay Points(Map)
    Poj 1338 Ugly Numbers(数学推导)
    Poj 1504 Adding Reversed Numbers(用字符串反转数字)
  • 原文地址:https://www.cnblogs.com/zhongchao666/p/9275462.html
Copyright © 2020-2023  润新知