六、JavaScript语句

计算机语言中,有三大流程控制顺序

  • 顺序控制语句:是计算机程序最基本执行顺序,从上至下 从左至右

  • 分支控制语句:if语句 switch语句,根据不同的条件,判断不同的结果,执行不同的语句

  • 循环控制语句:for循环语句、while循环语句、do...while循环语句 、forEach循环语句,根据循环条件,循环往复执行定义好的程序内容

一、if语句

  • if(条件){执行程序}

    • 当条件为 true 时,执行程序

    • 当条件为 false 时,没有执行内容

  • if(条件){执行程序1}else{执行程序2}

    • 当条件为 true 时,执行 执行程序1

    • 当条件为 false 时,执行 执行程序2

    • 不管是否满足条件,不管判断结果是true还是false,都会有一个执行程序

  • if(){}else if(){}...else{}

    • else if 之后有(),可以写判断条件

    • else 之后,不能有(),不能写条件

    • else if 之间必须有空格

    • else 其中执行的程序,往往是容错处理

二、switch语句

if语句 和 switch语句 都是分支结构语句

if语句更适合做范围条件的判断以及嵌套的判断

switch语句,更适合做判断是否是某个具体数值的判断

 1 switch( 变量 ){
 2   case 数值1:
 3     执行程序1;
 4     break;
 5 
 6   case 数值2:
 7     执行程序2;
 8     break;
 9 
10     ....
11 
12   default:
13       default执行程序;
14     break;
15 }
  • switch:是语句的关键词

  • switch() :()中是要判断的变量

  • case 数值:判断变量中的数据,是否是某个具体的数值

  • break:终止语句,switch语句,默认会从定位的程序处,一直执行到所有程序的结束(switch的穿透),除非遇到break语句,才会终止执行

  • default:就相当于 if语句 的 else,当变量的数值 , 不满足所有 case 定位的数据时,执行default中定义的程序

在JavaScript中 switch 语句 执行的 是 === 全等判断 数据类型和数值必须都是一致的

三、循环语句

在计算机程序中,有时需要计算机程序循环往复的执行相同的程序

1 for(var i = 1; i <= 100; i++){
2   document.write('循环语句' + '<br>');
3 }
1 var i = 1;
2 while( i <= 100 ){
3   document.write('循环语句' + '<br>');
4   i++;
5 }

while循环语句

 1 // 1,循环变量的初始化,在整个循环中只会执行一次
 2 var i = 30;
 3 
 4 // 2,判断进入循环的条件
 5 // 结果为 true 执行循环,结果为 false 终止循环
 6 while( i <= 50 ){
 7 
 8   // 3,循环体,每次循环要执行的程序
 9   console.log( '我是循环体' );
10 
11   // 4,步长,每次循环,循环遍变量改变的数值
12   i+=3;   
13 }

do...while循环

  • 实际上是一种特殊的while循环语句

  • 会先执行循环体和步长,再执行判断进入循环的条件

  • 作用就是即使循环变量的初始值,不满足进入循环的条件,也至少会执行一次循环

1 var i = 1;
2 do{
3   console.log(i);
4   i++;
5 }while(i > 10);

for循环

  • 任何一个for循环,都可以转化为while循环语法格式

  • 任何一个while循环,也都可以转化为for循环语法格式

  • 也就是说,for循环和while循环一定可以相互转化

  • for循环,更适合循环的嵌套,while循环,更使用未知循环次数的循环

1 // for循环的基本语法
2 // for循环是将 循环变量的初始化,判断进入循环的条件,步长,都定义在一个()中
3 // {}中,只写循环体
4 for(var i = 1; i <= 5; i++){
5   console.log(i);
6 }

循环语句中的break和continue

  • break

    • 终止一切

    • 在switch语句中,终止之后程序的运行

    • 从循环体内中途跳出循环体,即提前结束循环操作,接着执行循环下面的语句

  • continue

    • 终止一次

    • 只终止 当前循环体中,之后程序的执行

    • 会继续执行之后的循环程序

99乘法表

 1 // 外层循环是 1-9 的循环
 2 for (var i = 1; i <= 9; i++) {
 3   // 内层循环是  1-i 的循环
 4   for (var j = 1; j <= i; j++) {
 5     // 输出的是 内 * 外 = 结果
 6     document.write(`${j} * ${i} = ${j * i} `);
 7   }
 8   // 输出br换行
 9   document.write('<br>');
10 }

四、打断点

  • 执行程序

  • F12打开控制台

  • 点击 sources

  • 选择要打断点的文件

  • 选择断点起始的程序位置

  • 刷新页面,重新执行程序

  • 点击向下箭头执行下一步,特别注意向上箭头,是退出打断点,不是上一步

  • 打断点结束,要取消打断点标记

五、累加求和

偶数累加(1-100所有偶数的和)

 1 // 1、循环实现1-100所有的数值,判断,如果是偶数,执行累加操作
 2 // 定义变量,存储累加结果
 3 var res1 = 0;
 4 // 通过for循环生成 1-100 所有的数值
 5 for(var i = 1; i <= 100; i++){
 6   // 通过if判断,i 是 否是 偶数
 7   if(i%2 == 0){
 8     // 如果i是偶数,执行累加操作
 9     res1 += i;
10   }
11 }
12 
13 // 2、循环实现1-100所有的数值,如果不是偶数,跳出循环,不执行累加
14 var res2 = 0;
15 for(var i = 1 ; i <= 100 ; i++){
16   // 当i不是偶数时,执行continue;跳出当前循环,不执行累加操作
17   if(i%2 != 0){
18     continue;
19   }
20   res2 += i;
21 }
22 
23 // 3、通过循环生成1-100的所有偶数直接执行累加操作
24 var res3 = 0;
25 // 第一个数值是2,之后+=2就是 4 6 8 10 ...生成的i都是偶数
26 for(var i = 2 ; i <= 100 ; i+=2){
27   res3 += i;
28 }

质数累加(1-100所有质数的和)

 1 // 要注意 : 1是一个特殊的数值,计算质数时不要计算,在数学中规定1既不是质数也不是合数,1不参与质数合数的讨论
 2 // 求的是 1-100 实际上应该是2-100的所有质数
 3 // 思路方法:
 4 //     步骤1,通过for循环实现 2-100 的所有数值
 5 //     步骤2,判断当前通过循环生成的数值,是否是 质数
 6 //     步骤3,执行累加求和
 7 
 8 var res = 0 ;
 9 // 通过外层for循环生成2-100的所有数值
10 for(var i = 2; i <= 100; i++){
11   // 定义变量,存储判断是否是质数的结果
12   var bool = true;
13 
14   // 通过内层for循环,生成2至当前数值-1
15   for(var j = 2; j <= i-1; j++){
16     // 如果发生整除,给变量赋值false,并且终止这个内层循环
17     if( i%j == 0 ){
18       bool = false;
19       break;
20     }
21   }
22 
23   // 当这个内层循环结束后,bool变量中,存储的结果就是当前 i 的数值是否是 质数
24   // 如果 bool 是 true ,表示 i 的数值是质数,我们执行累加操作
25   // 如果 bool 是 不是true ,表示 i 的数值不是质数,不做任何操作
26   if(bool){
27     res += i;
28   }
29 }

六、百鸡百钱

 1 // 有一百钱,要买鸡一百只
 2 // 公鸡5钱一只 母鸡3钱一只 仔鸡三只1钱
 3 // 一百钱必须都花了,必须买够一百鸡,每种都必须有
 4 // 问:公鸡、母鸡、仔鸡各多少只
 5 
 6 // 从公鸡、母鸡、仔鸡一共100只入手,考虑极端情况,公鸡5钱一只,最多买20只,母鸡3钱一只,最多买33只
 7 // 仔鸡 == 100 - 公鸡 - 母鸡
 8 for (var g = 1; g <= 20; g++) {
 9   for (var m = 1; m <= 33; m++) {
10     // 仔鸡数量就等于 总数100只 减去 公鸡数量和母鸡数量
11     var z = 100 - g - m;
12     // 只需要判断,钱数是否是100钱
13     if (g * 5 + m * 3 + z / 3 == 100) {
14       console.log(`有公鸡${g}只,有母鸡${m}只,有仔鸡${z}只`);
15     }
16   }
17 }

七、水仙花数

如果一个三位数个位、十位、百位的立方和,,等于这个数值,就称为水仙花数

1 // 求所有3位数中哪些数是水仙花数
2 for(var i = 100 ; i <= 999 ; i++){
3   var a = parseInt( i / 100 );
4   var b = parseInt( (i % 100 ) / 10 );
5   var c = parseInt( i % 10 );
6   if(a*a*a + b*b*b + c*c*c == i){
7     console.log(`数值${i}是水仙花数`);
8   }
9 }

八、金字塔

通过*星号画图形

1 // 三角形,line为5-10的随机数
2 var line = parseInt( Math.random()*(10+1-5) + 5);
3 for(var i = 1; i <= line; i++){
4   // 每一行都是 5个 星星
5   for(var j = 1 ; j <= i ; j++){
6     document.write( '* ' );
7   }
8   document.write( '<br>' );           
9 }
1 // 倒三角形
2 for(var i = 0; i < line; i++){
3   for(var j = line; j > i; j--){
4     document.write("* ")
5   }
6   document.write("</br>")
7 }
 1 // 正三角
 2 //       *
 3 //      * *
 4 //     * * *
 5 //    * * * *
 6 //   * * * * *
 7 for (var i = 1; i <= 5; i++) {
 8   // 生成空格的内层for循环
 9   // 范围是总行数( 5 ) - 当前行数 ( i )
10   for (var j = 1; j <= 5 - i; j++) {
11     document.write('&nbsp;');
12   }
13 
14   // 生成星星的内层for循环
15   // 范围是当前函数 (i)
16   for (var k = 1; k <= i; k++) {
17     document.write('* ');
18   }
19 
20   // 一行内容生成结束,生成br换行
21   document.write('<br>');
22 }
 1 // 正倒三角
 2 for(var k = 1; k <= 6; k++){
 3   for(var j = 1; j <= 6-k; j++){
 4     document.write("&nbsp*")
 5   }
 6   document.write("</br>")
 7   for(var i = 0; i <= k-1; i++){
 8     document.write("&nbsp")
 9   }
10 }

 

posted @ 2021-07-14 00:05  大米饭盖饭  阅读(58)  评论(0)    收藏  举报