JavaScript核心语法学习部分(四)

①switch-case语句

switch...case... 多条分支,根据条件判断,选择执行。

语法:

switch(表达式){
  case 表达式1://如果表达式的值===表达式1的值就执行代码段1;
  代码段1;

  case 表达式2:

  代码段2;

  case 表达式n:

  代码段n;

  default://如果表达式的值和所有的case都不相等,执行默认代码段;

  默认代码段;

}

流程结构图:

 案例:分段显示分数

 1     var score=parseInt(prompt("请输入分数:"));
 2     switch (true){
 3         case score>=90:
 4         console.log("A");
 5         case score>=80:
 6         console.log("B");
 7         case score>=60:
 8         console.log("C");
 9         default:
10         console.log("D");
11     }

运行机制:如果找到与表达式值匹配的case,不但执行当前case下的代码,而且之后所有代码都被触发。

break:退出当前结构;

不加break:多个条件共用同一套执行逻辑时。

注意:表达式的值和条件值是严格相等。

案例1:switch...case语句

 1 var num=parseInt(prompt("请输入服务种类:"));
 2 switch (num){
 3         case 1:
 4         console.log("余额查询中");
 5         break;
 6         case 2:
 7         console.log("取款进行中");
 8         break;
 9         case 3:
10         console.log("转账进行中");
11         break;
12         default:
13     }

如果将parseInt去掉,或者是在case后面的值加上双引号,不会输出,严格相等包含值相等和数据类型相等。

案例2:if else 语句实现

 1     var num=parseInt(prompt("请输入服务种类:"));
 2     if(num===1){
 3         console.log("余额查询中")
 4     }else if(num===2){
 5         console.log("取款进行中")
 6     }else if (num===3){
 7         console.log("转账进行中")
 8     }else{
 9         console.log("您输入的有误,请重新输入")
10     };

②循环结构

循环结构:程序反复执行同一套代码段,但是遇到结束条件会结束执行。如果没有循环条件,永远循环执行——死循环

循环结构三要素:

a.循环条件——重复执行的次数,或者继续执行循环的条件。一旦循环条件不满足,循环立即退出!

b.循环变量——用于循环条件中做判断的变量,循环变量都会想循环退出的趋势变化(不满足循环条件的趋势)——循环计数器

c.循环体——要执行的相同或相似的语句,即每次循环要做的事情。

while循环

当满足条件时,就继续循环做...事情。

语法:

var 循环变量;

while(循环条件){

  循环体;

  迭代变化循环变量;

}

break:用户循环体中跳出循环,退出当前结构。

while何时使用break:循环条件不满足之前,希望强行退出循环。

如何使用break?客户放在任何需要退出循环的位置。

案例1:小火车转圈

 1     var round=0;
 2     while(round<3){
 3         if(round==2){
 4             console.log("晕");
 5             break;
 6         }
 7         console.log("转一圈");
 8         round+=1;
 9     }
10     console.log("停车");

 案例2:猜数游戏

 1     var n=10
 2     var input=-1
 3     while(input!=n){
 4         input=prompt("请输入数字:")
 5         if(input!=""){
 6         if(input=="exit"){
 7             console.log("放弃了")
 8             break;
 9         }else{
10         input=parseInt(input);
11         if(n>input){
12         alert("您输入小了");
13     }else if(n<input){
14         alert("您输入大了");
15     }else{
16         alert("恭喜您猜对了")
17     }
18     }
19 }
20 };

随机数:Math.random():0<=n<1

任意min——max取随机数

公式:parseInt(Math.random()*(man-min+1)+min)

案例3:猜数游戏(答案不固定)

 1     var n=parseInt(Math.random()*(10-0+1)+0);
 2     var input=-1
 3     while(input!=n){
 4         input=prompt("请输入数字:")
 5         if(input!=""){
 6         if(input=="exit"){
 7             console.log("放弃了")
 8             break;
 9         }else{
10         input=parseInt(input);
11         if(n>input){
12         alert("您输入小了");
13     }else if(n<input){
14         alert("您输入大了");
15     }else{
16         alert("恭喜您猜对了")
17     }
18     }
19 }
20 };

 do while循环

语法:

var 循环变量;

do{

  循环体;

  迭代变换循环变量;

}while(循环条件);

do-while循环:先执行一次循环体,再判断是否继续!

如果循环条件不满足,循环体至少可以执行一次!

案例:猜数字游戏

 1     var n=parseInt(Math.random()*(10-0+1)+0);
 2     var input=-1
 3     do{input=prompt("请输入数字:")
 4         if(input!=""){
 5         if(input=="exit"){
 6             console.log("放弃了")
 7             break;
 8         }else{
 9         input=parseInt(input);
10         if(n>input){
11         alert("您输入小了");
12     }else if(n<input){
13         alert("您输入大了");
14     }else{
15         alert("恭喜您猜对了")
16     }
17     }
18 }
19 }
20 while(input!=n);

 说明:var放在{}内外均可,因为此变量是全局作用域。作用域只分为全局作用域和函数作用域,此处没有函数。

 变量声明提前:相同作用域内,var无论出现在什么位置,解析时优先提取到js开始位置声明!

while vs do-while:

如果第一次条件就可能不满足,也想执行一次,必须用do-while

如果第一次条件一定满足,while等同于do while

for循环:

 完全等效于while循环。

循环变量变化规律固定,循环次数已知/固定。

语法:

for(声明并初始化循环变量;循环条件;迭代循环变量){

  循环体;

}

案例1:1+2+3+...+100计算写法1

1     for(var i=1,sum=0;i<=100;i++){
2         sum+=i;
3     }
4     console.log(sum);

 案例2:1+2+3+...+100计算写法2

1     for(var i=1,sum=0;i<=100;sum+=i++){
2     }
3     console.log(sum);

break;用于强行退出当前结构;

continue:跳过本轮循环,继续执行下一轮循环。

 案例1:从2000年开始找出5个闰年

1     var count=0;
2     var year=2000;
3     while(count<5){
4         if((year%4==0&&year%100!=0)||(year%400==0)){
5             console.log(year);
6             count++;
7         }
8         year++;
9     }; 

 案例2:打印九九乘法表

1 for(var n=1;n<=9;n++){
2          var str="";
3      for(var i=1;i<=n;i++){
4          str+=i+"*"+n+"="+(i*n)+" ";
5      }
6      console.log(str);
7 };

 案例3:计算平均数(要求输入班级分数,输入-1停止并打印平均分数)

 1     var sum=0;
 2     var count=0;
 3     do{var input=parseInt(prompt("请输入成绩:"));
 4     if(input=="-1"){
 5         break;
 6     }else{
 7         count++;
 8         sum+=input;
 9     }
10     }while(true);
11     console.log("平均分:"+(sum/count).toFixed(2));

案例4:“水仙花数”查找(在100到999查找水仙花数)

1     for(var num=100;num<=999;num++){
2         var hd=parseInt(num/100);
3         var ten=parseInt(num%100/10);
4         var one=num%10;
5         if(num==hd*hd*hd+ten*ten*ten+one*one*one){
6             console.log(num);
7         }
8     };

 

posted @ 2017-09-03 14:45  Angche  阅读(230)  评论(0编辑  收藏  举报