流程控制语句

流程控制语句

流程控制语句俗称程序结构
分为:

  1. 顺序结构
  2. 分支结构(选择结构):之内执行一个分支
  • if
  • if…else
  • if…else if…else
  • switch
  1. 循环结构
  • for
  • while
  • do…while

分支结构

if语句

if语句:若条件成立(真),则执行语句,不成立,则不执行

语法:
if(条件){
      语句;
}

如:成绩大于80分的及格

var score=prompt('请输入成绩:')
if(score>80){
   alert('及格');
}

if…else语句

语法:
if(条件){
      语句1;
}else{
      语句2;
}

如:小于18岁禁止入内

var age=prompt('请输入您的年龄:')
if(age>18){
   alert('去玩吧');
}else{
    alert('禁止入内');
 }

多分支语句

语法:
if(条件1){
      语句1;
}else if(条件2){
      语句2;
 }else{
      语句3;
 }

如:考试成绩80分以上及格,95以上奖励100元,不及格挨打

var score=prompt('请输入成绩:')
if(age>95){
   alert('奖励100元');
}else  if{
    alert('及格');
 }else{
    alert('挨打');
 }

如:
周一到周五学习编程技术,周六自习,周日去公园

<script type="text/javascript">
	  var week=prompt('请输入今天是星期几?');
	  if(week=='星期一'||week=='星期二'||week=='星期三'||week=='星期四'||week=='星期五'){
	  	alert('学习编程技术')
	  }else if(week=='星期六'){
	  	alert('自习')
	  }else if(week=='星期日'){
        alert('去公园')
	  }else{
	  	alert('请输入正确的日期')
	  }
</script> 

switch语句

switch语句只能用于单值比较,并且为全等比较,表达式中与case中谁的值相等,那么就会执行谁的。如果都不相等,则执行default的值。

语法:
case(表达式){
      case 值1:
       break;
      case 值2:
      break;
      ...
      case 值n:
      break;
      default:
      break;
}

如:
以下变量名不规范的是:A.abc B.$abc C._abc D.&abc

<script type="text/javascript">
	var res=prompt('以下变量名不规范的是:A.abc  B.$abc  C._abc  D.&abc')
	switch(res){
		case 'A':
		   alert('答案错误');
		   break;
		case 'B':
		   alert('答案错误');
		   break;
		case 'C':
		   alert('答案错误');
		   break;
		case 'D':
		  alert('答案正确');
		  break;
		default:
          alert('请重新输入');
		  break;
	}
</script>

case穿透

如上例可写为:

switch(res){
		case 'A':
		case 'B':
		case 'C':
		   alert('答案错误');
		   break;
		case 'D':
		  alert('答案正确');
		  break;
		default:
          alert('请重新输入');
		  break;
	}
</script>

再例如:
根据月份输出对应的季节:冬季:12, 1,2;春季:3,4, 5;夏季:6, 7,8;秋季:9,10,11

<script type="text/javascript">
	var month=prompt('请输入月份:');
	switch(month){
		case '12':
		case '1':
		case '2':
		   alert('冬季');
		break;
		case '3':
		case '4':
		case '5':
		   alert('春季');
		break;
		case '6':
		case '7':
		case '8':
		   alert('夏季');
		break;
		case '9':
		case '10':
		case '11':
		   alert('秋季');
		break;
		default:
		   alert('请输入正确的月份');
		break;
	}
</script> 

嵌套语句

语法:
if(){
     if(){
         语句1
     }else{
         语句2
}else{
      if(){
       语句3
      }else{
       语句4
     }
}

在弹出框中会有确定和取消选择项,如果点击取消,会出现NaN,需要加上:

if(num!==null);

使用嵌套语句,如判断奇偶数

if(num!=null){
      if(num%2==0){
              alert('偶数');
      }else{
             alert('奇数');
      }
}

循环结构

for语句

语法:
for(声明变量初始化;循环条件;循环迭代){
        循环体;
}

如:输出五行’hello word’

   for(var i=0;i<5;i++){
         document.write('hello word<br/>');
   }

执行规则:
第一步:循环变量的初始化 var=0;
第二步:循环条件判断 i<5;
若判断条件成立,执行循环体,不成立,结束循环
第三步:循环迭代 i++;
第四步:再继续执行第三步,进行判断

如:
求10以内的奇数之和:

for(var i=1;i<=10;i+=2){
    sum+=i;
}

for语句一定是由三部分组成,省略条件时分号不能少:

1.省略第一个条件

   var i=0;
      for(;i<5;i++){
              document.write('hello word<br/>');
      }//输出5个hello word

2.省略第二个条件

   var i=0;
      for(;;i++){
           if(i>4){
                  break;
            }
              document.write('hello word<br/>');
      }//输出5个hello word

3.省略第三个条件

   var i=0;
      for(;;;){
           if(i>4){
                  break;
            }
              document.write('hello word<br/>');
              i++;
      }//输出5个hello word

换行

document.write('');

对其换行:

document.write('hello word'+'<br/>');
或
document.write('hello word<dr>');

break结束循环(结束整个程序)

for(var i=0;i<5;i++){
       if(i==2){
               break;//结束循环
       }
       console.log(i);
  }//0,1

continue结束本次循环,实行下一个循环

 for(var i=0;i<5;i++){
       if(i==2){
             continue;//结束循环
       }
       console.log(i);
  }//0,1,3,4,

如:求10以内奇数之和:

for(var i=0;i<10;i++){
       if (i%2==0){
           continue;
        }
        sum+=i;
  }//当i为2的倍数时跳过

while循环

先判断,再执行,判断未知用此方法

语法:
while('循环条件'){
                 循环体;
 }  

如:

var i=0;
while(i<3){
    document.wirte('hi<br/>');
    i++;
 }//输入三遍hi

do…while

先执行后判断
先执行循环体一次,判断条件成立后,执行循环,不成立,结束循环
语法:

do{
     循环体;
     }while(条件);

如:

var i=0;
do{
   document.write('hi<br>');
   i++;
}while(i<3);//3个hi

如:

var j=0;
while(i<3){
   document.write('hi<br>');
   j++;
}//3个hi

while语句不符合条件的不出结果,先判断后输出,如:

var k=0;
while(k<3){
   document.write('hi<br>');
   k++;
}//无结果

do…while语句不符合条件的会输出一个结果,先输出后判断,如:

   var r=3;
    do{
       document.write('hi<br>');
    }while(r<3);//出现一变hi

嵌套循环

输出矩形:*****
*****
*****
*****
//控制行数

  for(var i=0;i<4;i++){
        //控制每行内容具体个数
       for(var i=0;i<5;i++){
              document.write('*');
       }
       document.write('<br>');//分行
   }

输出等腰三角形:

<script type="text/javascript">

	for(var i=1;i<5;i++){
		for(var m=1;m<=4-i;m++){
		document.write('&nbsp;');
	    }
       for(var j=1;j<=2*i-1;j++){
       document.write('*');
       }
    document.write('<br/>');
	}

输出乘法口诀:

流程控制语句

<script type="text/javascript">
	   var symbol;
	   for(var i=1;i<=9;i++){
            for(var j=1;j<=i;j++){
        	    symbol=i*j;
        	if(symbol<10){
                document.write(symbol=j+'*'+i+'='+symbol+'&nbsp'+'&nbsp'+'&nbsp'+'&nbsp'+'&nbsp');
            }else{
           	 document.write(symbol=j+'*'+i+'='+symbol+'&nbsp'+'&nbsp'+'&nbsp');
            }
        }
       document.write('<br>');
	   }
	</script>