JavaScript流程控制语句包括:顺序、分支(条件)、循环
程序按代码先后顺序依次执行
根据不同的条件,执行不同的代码,得到不同的结果
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能实现的功能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(初始化变量;条件表达式;操作表达式){
//循环体
}
初始化的变量通常作为计数器使用;
条件表达式决定执行多少次;
操作表达式为每次循环最后执行的代码,常用于计数器变量更新(递增或者递减)
一行打印五个★
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(条件表达式){
//循环体
计数器
}
先判断再执行
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(条件表达式)
先执行一次循环体,再执行条件表达式,条件为真则继续,为假则退出循环
为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:在循环条件之前结束循环,可以避免资源浪费
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 偶数的和