js 条件语句&循环语句

一笑奈何 提交于 2020-01-24 18:58:14

条件语句

1.三种 if 语句

if(隐式转换为布尔值){}
if () {} else {}
if () {} else if() {}
条件中的结果不是 “”,false,0,NaN,undefined,null就可以进入条件;
如果条件语句块只有一句话的时候,可以省略{};
配合函数中的return将会很少使用到if else if .

2.switch开关语句

判断switch()中表达式是否(绝对===)等于case后的值

var s=10;
   switch (s%10){
       case 1:break;
       case 2:break;
       case 0:document.write("switch常用语法格式");break;
       default:break;
   }
  • switch 穿越

    break作用是跳出switch语句块,break后面的语句块将不再执行;
    但是如果没有break,仍然在不判断结果的情况下执行一个case的语句块,这叫穿越.

    • switch 或者穿越
      	 var s=10;
           switch(s%10){
               case 0:
               case 1:
               case 2:
               case 3:
               case 4:
               s++;
               break;
           } 
           console.log(s);
           //只要条件匹配,就能够执行最后的语句块;结果是11。
      
    • switch 累积穿越
            var s=10;
            switch(s%10){
                case 0:
                s=100;
                case 1:
                case 2:
                case 3:
                case 4:
                s--;
                break;
            } 
            console.log(s);
            //s重新赋值,重新计算值;结果是99。
      

3.练习:输入成绩,返回分类段

  • 方法一:if else if
    var value = parseInt(prompt("请输入成绩"));
    //prompt弹窗输入内容
    //如果输入的是小数,就取整;如果输入比如12a也会取12
    if(!isNaN(value)){
       if(value>100) document.write("输入错误");
       else if(value>90) document.write("A");
       else if(value>80) document.write("B");
       else if(value>70) document.write("C");
       else if(value>60) document.write("D");
       else document.write("Error!");
    }else document.write("非数值");
    
  • 方法二:switch
    var score = Number(prompt("请输入你的成绩"));
    //输入的成绩是字符串的话,直接NaN
    switch(parseInt(score/10)){
        case 10: //当100时,没有break,穿越了,实际执行的是case :9
        case 9:document.write("A");break;       
        case 8:document.write("B");break;
        case 7:document.write("C");break;
        case 6:document.write("D");break;
        default:document.write("输入错误");
    }
    

循环语句

1、必须有起始值;必须有一个循环条件;必须有一个不断向条件外处理的语句;
2、循环是同步,如果循环较长就会卡顿;
3、跳出循环break ;break还可以设置锚点位置;
4、当执行continue后,跳出当前循环,进入下一次循环。

1、 while语句

示例1:写出 ul里面5个li

	var str1 = "";
	str1+="<ul>";
	var i=0;
	while(i<5){
	  str1+="<li>"+i+"</li>";
	  i++;
	}
	str1+="</ul>";
	document.write(str1);

示例2:双重循环语句,设置锚点,打印多个ul,每个ul里有多个li

	var str = "";
	var i=0,j;
	while (i<5){
	  str+="<ul>";
	  j=0;
	  AB: while(j<3){
	      str+="<li>"+j+"</li>";
	      if(i===1&&j===1) break AB;//控制不打印第二个ul的第三个li
	      j++;
	  }
	  str+="</ul>";
	  i++;
	}
	document.write(str);

示例3:table表格js写法 5个表格,每个表格里面3行4列,数值依次从0-11;

	var j = 0,i = 0,k=0;
	var str = "";
	str += "<table>";
	while(j<3){
	    str+="<tr>";
	    i=0;
	    while(i<4){
	        str+="<td>"+(j*4+i)+"</td>";//打印 j = 4;
	        i++;
	    }
	    str+="</tr>";
	    j++;
	}
	str+="</table>";
	document.write(str);

示例4:九九九乘法表

	var j = 1,i,k=0;
	var str = "";
	str += "<table>";
	while(j<10){
	    str+="<tr>";
	    i=9;
	    while(i>0){
	        str+="<td>"+j+"*"+i+"="+j*i+"</td>";//打印 j = 4;
	        if(j==i) break; 
	        i--;
	    }
	    str+="</tr>";
	    j++;
	}
	str+="</table>";
	document.write(str);

示例5:链表

	var obj={
	value:1,next:{
	    value:2,next:{
	        value:3,next:{
	            value:4,next:{
	                value:5,next:{
	                    value:6
	                }
	            }
	        }
	    }
	}
	};
	console.log(obj.value);//1只有第一个
    console.log(obj.next);//打印next的内容
	while(obj=obj.next){
		console.log(obj.value);//可以遍历从next开始往下的内容
	}

示例6:求100-1000的质数

//素数是1和他本身外,都不能整除的数
//思路:用i除以1-自身之间的数值,如果没有余数,就不是素数(质数)
	var i = 100,j=2,bool;
	while(i<1000){
	    bool=false;
	    j=2;//每次从2开始
	   while(j<i){
	       if(i%j===0){
	           bool=true;
	           break;
	       }
	       j++; 
	   }
	   if(!bool){
	    console.log(i);
	   }
	   i++;
	}

示例7:画三角形

	var i=1,j=0,k=0;
	while(i<10){
	   k=0;
	   while(k<(9-i)){
	       document.write("&ensp;");
	       k++;
	   }
	   j=1;
	   while(j<i*2){
	       document.write("*");
	       j++;
	   }
	   document.write("<br>");
	   i++;
	}

2、do while语句

是先执行语句块,再判断是否继续循环

3、 for循环

for(初始变量;循环条件;向条件外变化的表达式){
循环体
}
初始定义变量,每次循环的开始先执行,执行一次;
条件语句先判断,条件语句计算完成后必须转换为布尔值,是true才进入语句块;
向条件外变化的表达式,是所有语句块运行完成后执行的。

  • for循环的简化
    for(var i=0,sum=0;i<100;i++){
       sum+=i;
   }
   console.log(sum);//4950
   
   for(var i=0,sum=0;i<100;sum+=i,i++);
   console.log(sum);//4950
   
   for(var i=0,sum=0;i<100;sum+=i++);
   console.log(sum);//4950

综合应用

  • 求闰年

成为闰年条件:能被4整除,不能被100整除;或者,能被400整除。

	for(var i=1000;i<2000;i++){
	    if(i%100===0 && i%400!==0)continue;//不满足条件的先排除
	    if(i%4===0 || i%400===0) console.log(i);
	}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!