JavaScript流程控制语句

流程控制语句

  • 顺序流程控制
  • 分支控制语句
    • if 分支语句
    • 三元运算符
    • switch语句
  • 循环控制语句
    • for循环
    • while循环
    • do...while循环
    • 关键词break,continue

JavaScript流程控制语句

JavaScript流程控制语句包括:顺序、分支(条件)、循环

顺序流程控制

程序按代码先后顺序依次执行

分支控制语句

根据不同的条件,执行不同的代码,得到不同的结果

if 分支语句

if(条件表达式){
//执行语句(条件成立)
}

双分支语句

if(条件表达式){
	//执行语句1(条件成立)
}else{
	//执行语句2(条件不成立)
}

多分支语句

if(条件表达式1){
	//执行语句1
}else if(条件表达式2){
	//执行语句2
}else{
	//执行语句3
}

判断一个数为正数,负数或0

  var num=0;
  //var num=prompt('请输入数字:'): //只能在浏览器端使用
  if (num>0){
    console.log('正数');
  }else if (num<0) {
    console.log('负数');
  }else {
    console.log('0');
 }

判断是否是瑞年

var year=prompt('请输入年份');
if (year%4==0 && year%100!=0 || year%400==0){
	console.log('该年为瑞年');
}else{
	console.log('平年')
}

分数转换:90-100为A,80-90为B,60-80为C,0-60为F

  var num=80;
  if (num>=90&&num<=100){
    console.log('A')
  }else if(num>=80&&num<90){
    console.log('B')
  }else if(num>=60&&num<80){
    console.log('C')
  }else if(num>=0&&num<60){
    console.log('F')
  }else{
    console.log('分数无效')
  }

三个数从大到小排序输出

  var a=2,b=1,c=3;
  var n1;
  if(ab&&a>c){
      n1 = a;
      if(b>c){
          n2 = b; 
          n3 = c;
      }else{
          n2 = c; 
          n3 = b;
      }
  }else if(ac){
          n1=b;
          n2=c;
      }else{
          n1=c;
          n2=b;
     }
  }else{
      n2=a;
      if(b>c){
      n1=b;
      n3=c;
      }else{
       n1=c;
       n3=b;
     }
}
console.log(n1,n2,n3);

三元运算符

条件表达式 ? 表达式1 :表达式2
条件为真返回表达式1,条件为假返回表达式2

数字补0
若数字小于10,则在数字前补0,若数字大于等于10,直接返回

var time=prompt('请你输入一个0-59之间的一个数字');
var result=time<10 ? '0'+time :  time; 
alert(result);

switch语句

switch能实现的功能if都可以实现

switch语句通常用于处理条件表达式值比较确定的情况,而if语句更加灵活,常用于范围判断;

switch语句进行条件判断后直接执行执行语句,效率更高,而if语句有多种条件,需要判断多次;

如果分支较少时,if语句执行效率比switch语句高;

当分支比较多时,switch语句执行效率比较高,且结构更清晰。

用表达式值匹配(全等,值和数据类型均相等)case后的值,匹配不上则执行default后的表达式

 switch(表达式){
	case	value1:
		执行语句1;
		break;
	case	value2:
		执行语句2 ;
		break;
	...
	default:
		(不符合以上值)最后执行的语句
} 

判断某一天为工作日还是休息日

  var day=prompt('请输入星期');  //工作日
  switch(day){  //传入需要判断的变量
    case 1:
    alert('周'+day+'是工作日')
    break; //当遇到break跳出控制语句
    case 2:
    alert('周'+day+'是工作日')
    break;
    case 3:
   alert('周'+day+'是工作日')
    break;
    case 4:
    alert('周'+day+'是工作日')
    break;
    case 5:
    alert('周'+day+'是工作日')
    break;
    case 6:
   alert('周'+day+'是休息日')
   break;
   case 7:
   alert('周'+day+'是休息日')
   break;
   default : alert('请输入1-7的数字')
 }

var day6;
 switch(day){
   case 1:
   case 2:
   case 3:
   case 4:
   case 5:
   console.log('工作日');
   break;
   default:
   console.log('休息日');
 }

循环控制语句

程序中一组被重复执行的语句被称为循环体,能否继续执行取决于终止条件;
由循环体和终止条件组成的语句称为循环语句;
for while do…while

for循环

重复执行代码,通常与计数有关

for(初始化变量;条件表达式;操作表达式){
	//循环体
}
初始化的变量通常作为计数器使用;
条件表达式决定执行多少次;
操作表达式为每次循环最后执行的代码,常用于计数器变量更新(递增或者递减)

一行打印五个★

var num=prompt(‘请输入★的个数’);
var str=‘ ’;
for(var i=1;i<=num; i++){
	str=str+ ' ★ ';
}
console.log(str);

打印五行五列★

var str=' ';
for(var i=1;i <=5; i++){  //打印五行
	for(var j=1;j <=5; j++){    //每行打印五个
	str=str+ ' ★ ';
	}
	str=str+'\n';   //换行
}
console.log(str);

打印倒三角行

var str=' ';
for(var i=1;i <=10; i++){  //打印十行
	for(var j=i;j <=10; j++){    //每行打印
	str=str+ ' ★ ';
	}
	str=str+'\n';   //换行
}
console.log(str);

打印九九乘法表

var str=' ';
for(var i=1;i<=9;i++){
	for(var j=1;j<=i;j++){
		str+= j +‘x’ + i + ' = ' + i * j +'\t';  
	}
	str=str+'\n';   //换行
}
console.log(str);

while循环

初始化变量;
while(条件表达式){
	//循环体
	计数器
}

先判断再执行

var j=1; //初始值
var j_sum=0;  //计算结果
while(j<=100){  //判断条件
	j_sum+=j;
	j++;
}
console.log(j_sum);

var a=prompt('你爱我吗');
while(a!='我爱你'){
	a=prompt('你爱我吗');
}
alert(' 我也爱你');

do…while循环

do{
	//循环体
}while(条件表达式)

先执行一次循环体,再执行条件表达式,条件为真则继续,为假则退出循环
为while循环的一种分支,唯一的区别为在循环之前先执行一次执行体

var k=1;
var k_sum=0;
do {
	k_sum+=k;
	k++;
}while(k<=100)
console.log(k_sum);

刚入职时工资为10k,每年增幅为5%,20年后工资为多少

var n=10000;  //初始薪资
for(var i=1;i<=20;i++){
	n+=n*0.05;
}
console.log(n);

1元,2元,5元的纸币,凑成20元,有多少种情况

var res=0;   //情况数
for(var i=0;i<=20;i++){
  for(var j=0;j<=10;++){
	for(var k=0;k<=4;k++){
		if(i*1+j*2+k*5==20){
		res++;
		console.log('1元纸币:'+i  '2元纸币:'+ '5元纸币:'+k)
		}
	}
 }
}
console.log('共有'+res+'种情况')

关键词break,continue

break:在循环条件之前结束循环,可以避免资源浪费

for(var a=0;a<=10;a++){
	for(var b=0;b<+10;b++){
		console.log(a,b);
	}
}

for(var a=0;a<=10;a++){
	for(var b=0;b<+10;b++){
		if(b==5)
		break;    //等于5时整个内存结束循环,外层仍然循环
		console.log(a,b);
	}
}

lable标记:可以给循环体加上一个标签,未来可以使用

a1:for(var a=0;a<=10;a++){
	for(var b=0;b<+10;b++){
	if(b==5)
	break a1;  //添加a1标签,直接结束循环
	console.log(a,b);
	}
}

var sum=0;
for(var i=0;i<=100;i++){
	sum+=i;
}
console.log(sum);  //5050

var i_sum=0;
for (var i=1; i<=100;i++){
	if (i==50)
	break;     //循环到50的时候退出循环
	i_sum+=i;
}
console.log(i_sum);  //1225

continue:不会结束整个循环,跳出当前的那次循环,继续执行剩下的循环

var i_sum=0;
for (var i=1; i<=100;i++){
	if (i==50){
	continue;     //循环到50的时候退出本次循环,继续执行剩下循环
	}
	i_sum+=i; 
}
console.log(i_sum);  //5000

var i_sum=0;
for(var i=0;i<=100;i++){
     if(i%2==0)
     continue;  //循环运算到偶数时,退出本次循环,继续执行剩下循环
     i_sum+=i;
 }
 console.log(i_sum);  // 1到100 偶数的和

你可能感兴趣的:(es5,javascript)