六、JavaScript语句
-
顺序控制语句:是计算机程序最基本执行顺序,从上至下 从左至右
-
分支控制语句:if语句 switch语句,根据不同的条件,判断不同的结果,执行不同的语句
-
一、if语句
-
-
当条件为 true 时,执行程序
-
当条件为 false 时,没有执行内容
-
-
if(条件){执行程序1}else{执行程序2}
-
当条件为 true 时,执行 执行程序1
-
当条件为 false 时,执行 执行程序2
-
不管是否满足条件,不管判断结果是true还是false,都会有一个执行程序
-
-
if(){}else if(){}...else{}
-
else if 之后有(),可以写判断条件
-
else 之后,不能有(),不能写条件
-
else if 之间必须有空格
-
-
二、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 }
-
实际上是一种特殊的while循环语句
-
会先执行循环体和步长,再执行判断进入循环的条件
-
1 var i = 1; 2 do{ 3 console.log(i); 4 i++; 5 }while(i > 10);
-
任何一个for循环,都可以转化为while循环语法格式
-
任何一个while循环,也都可以转化为for循环语法格式
-
也就是说,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(' '); 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(" *") 5 } 6 document.write("</br>") 7 for(var i = 0; i <= k-1; i++){ 8 document.write(" ") 9 } 10 }