Js基础-循环语句(for和while的区别),判断语句,语句案例

傷城~ 2023-06-25 07:46 107阅读 0赞

Ⅰ- 壹 - 条件语句

一 if

  • if就是 “如果”的意思。
  • 表达式值为真时,执行if控制的语句
  • 语句体只有一条语句时,可以不加{}
  • 条件表达式会隐式转换为布尔类型

语法格式1

  1. if ( 条件表达式) {
  2. 语句1
  3. }

语法格式2

如果上面条件满足则不会判断下面内容。
配合函数 return将会很少使用这个用法

  1. if(条件表达式){
  2. 语句1
  3. }else{
  4. 语句2
  5. }

if 嵌套

  1. if(条件){
  2. if(条件){
  3. }
  4. }

二 switch case

  • 判断 switch中的表达式中 是否绝对等于(===)。 既数值和数值类型相等
  • break 跳出,如果不写break不判断值2是否相等,直接穿越

    switch(表达式){

    1. case 1:
    2. // 当表达式绝对等于值1时执行这里的内容
    3. // break 跳出,如果不写break不判断值2是否相等,直接穿越
    4. break;
    5. case 2:
    6. // 当表达式绝对等于值2时执行这里的内容
    7. break;
    8. case 3:
    9. // 当表达式绝对等于值3时执行这里的内容
    10. break;
    11. case 4:
    12. // 当表达式绝对等于值4时执行这里的内容
    13. break;
    14. default:
    15. // 默认以上条件都不满足时执行这里
    16. }

工作原理:首先设置表达式 (通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在则执行与该 case关联的代码块。请使用 break 来阻止代码自动地向下一个 case 运行。

  • case 当做表达式进行选择

    var score=prompt(“请输入你的成绩”);
    switch(true){

    1. case score>=90 && score<=100:
    2. console.log("优秀");
    3. break;
    4. case score>=80:
    5. break;
    6. case score>=70:
    7. break;
    8. case score>=60:
    9. break;
    10. default:
    11. }

Ⅱ - 贰 - 循环语句

一 while

  • 条件表达式都是将结果转换为布尔值
  • while语句是一种先判断,后运行的循环语句。也就是说,必须满足条件了之后,方可运行循环体
  • 循环体有可能一次也不执行。
  • 循环体应包含有使循环趋向结束的语句;
  • 下列情况,退出while循环

    1. 条件表达式不成立
    2. 循环体内遇 break

语法格式:

  1. while(判断语句){
  2. 循环体;

语句1
例如:

  1. var i=1; //赋初值语句
  2. while(i<=10)//控制循环条件
  3. {
  4. document.write("hello world!<br/>"); //循环体
  5. i++; //循环增量
  6. }

二 do while

  • do…while语句是一种先运行,后判断的循环语句。也就是说,不管条件是否满足,至少先运行一次循环体。
  • ++i 最好用于累加

语法格式

  1. 赋初值1
  2. do
  3. {
  4. 循环体;2
  5. 循环增量;3
  6. }while(循环条件);4

语句

  1. var i=1;
  2. do{
  3. document.write("hello world!<br/>"); //循环体
  4. i++;
  5. }while(i<=10);

++i

  1. var i=0;
  2. do{
  3. document.write("hello world!<br/>"); //循环体
  4. i++;
  5. }while(++i<10);

三 for

  • 循环三要素:即表达式1,表达式2,表达式3
    (循环变量赋初值,循环判定条件,循环增量)
  • 循环体:需要重复执行的语句。
  • 双层循环时,不要再内层的判断中,改变外层变量
  • 循环是同步的,会造成堵塞。循环次数不能超过10亿次,循环嵌套不能嵌套太多。一般不超过三次

语法格式

  1. for(表达式1;判断表达式2;表达式3
  2. 循环体;

语句

  1. //0-9累加
  2. var sum=0;
  3. for(var i=0;i<10;i++){
  4. sun+=i; //累加器
  5. console.log(i)
  6. }

循环嵌套:外层循环一次内层循环一遍

  1. for(var i=0;i<10;i++){
  2. for(var j=0;j<10;j++){
  3. console.log(i,j,i*j)
  4. }
  5. }

四 for 和 while 的区别

  • 当循环的次数确定时,使用for循环和while循环差别不大,但是当循环次数不确定时,while方法使用起来更加方便(已知循环次数用for循环,未知循环次数用while循环)
  • 在处理大量数据的时候用while,比较合适。for 中需要定义初始变量 在遍历大量数据的时候效率低一点

Ⅲ - 叁 - 其他

1 break

break语句会立即退出循环,强制继续执行循环后面的语句,结束本层循环。
一般出现在循环语句和 switch中

  • 可以当做锚点使用

    var str = “”;

    1. var j = 0;
    2. // 设置锚点位置
    3. AB: while (j < 10) {
    4. str += "<ul>";
    5. var i = 0;
    6. while (i < 10) {
    7. str += "<li>项目"+ i + " </li>";
    8. i++;
    9. //跳出到锚点位置
    10. if (i === 4 && j === 4) break AB;
    11. }
    12. str += "</ul>";
    13. j++;
    14. }
    15. document.write(str);

2 continue

  • continue语句仅用于循环语句。虽然也是立即退出循环,但退出循环后会从循环的顶部继续执行,结束本次循环进行下一次。
  • 出现在循环语句中
  • continue跳出最近的循环

    for (var box = 1; box <= 10; box++) {

    1. if (box == 5) break;//如果box是5,就退出循环
    2. document.write(box);
    3. document.write('<br />');

    }

    for (var box = 1; box <= 10; box++) {

    1. if (box == 5)
    2. continue;//如果box是5,就退出当前循环
    3. document.write(box);
    4. document.write('<br />');

    }

Ⅳ - 肆 - 案例

一 打印三角形

1
在这里插入图片描述

  1. var j = 0,
  2. row=10,
  3. col=20,
  4. i,n;
  5. while (j++ < row) {
  6. n = 0;
  7. while (n++ < row-j) document.write(" ");
  8. i = 0;
  9. while (i++ < j*2-1) document.write("*");
  10. document.write("<br>");
  11. }

1.1
在这里插入图片描述

  1. var j = 10,
  2. row = 10,
  3. col = 20,
  4. i, n;
  5. while (j-- > 0) {
  6. i = row;
  7. while (i-- >= j) {
  8. document.write(" ");
  9. }
  10. n = 0;
  11. console.log(j)
  12. while (n++ < j) {
  13. document.write(" * ");
  14. }
  15. document.write("<br>");
  16. }

2
在这里插入图片描述

  1. var j = 0,
  2. row = 10,
  3. col = 20,
  4. i, n;
  5. while (j++ < row) {
  6. n = 0;
  7. while (n++ <= row - j) document.write(" ");
  8. i = 0;
  9. while (i++ < j ) document.write(" * ");
  10. document.write("<br>");
  11. }

3
在这里插入图片描述

  1. var j = 0,
  2. row = 10,
  3. col = 20,
  4. i, n;
  5. while (j++ < row) {
  6. n = 0;
  7. while (n++ <= row - j) document.write(" * ");
  8. i = 0;
  9. while (i++ < j ) document.write(" ");
  10. document.write("<br>");
  11. }

二 表格和 99乘法表

在这里插入图片描述
css

  1. table {
  2. border-collapse: collapse;
  3. width: 800px;
  4. }
  5. td,
  6. th {
  7. height: 30px;
  8. line-height: 30px;
  9. font-size: 18px;
  10. text-align: center;
  11. border: 1px solid #000000;
  12. }

js

  1. // 9*9 乘法表格
  2. var col = 9,
  3. row = 9,
  4. i = 0,
  5. j = 0;
  6. document.write("<table>");
  7. while (j++ < row) {
  8. i = 0;
  9. document.write("<tr>");
  10. while (i++ < j) document.write("<td>" +j+"*"+i+"="+j*i + "</td>");
  11. document.write("</tr>");
  12. }
  13. document.write("</table>");

打印表格
在这里插入图片描述

  1. var col = arr.length,
  2. row = 9,
  3. i = 0,
  4. j = 0;
  5. document.write("<table>");
  6. while (j++ < row) {
  7. i = 0;
  8. for (; i < col; i++) {
  9. document.write("<td>");
  10. document.write("33");
  11. document.write("</td>");
  12. }
  13. document.write("</tr>");
  14. }
  15. document.write("</table>");

三 求0-100所有质数

while

  1. // 求0-100所有质数
  2. var j = 1,i=2,bool=true;
  3. while (j++ < 100) {
  4. i = 2;
  5. bool = true;
  6. while (i < j) {
  7. if (j % i === 0) {
  8. bool = false;
  9. break;
  10. }
  11. i++;
  12. }
  13. if (bool) console.log(j);
  14. }

四 打印列表

在这里插入图片描述

  1. var j = 0,
  2. i;
  3. document.write("<ul>");
  4. while (j++ < 10) {
  5. i = 0;
  6. document.write("<li>第" + j + "章<ul>");
  7. while (i++ < 10) document.write("<li>第" + i + "节</li>");
  8. document.write("</ul></li>");
  9. }
  10. document.write("</ul>");

五 水仙花数

  1. for(var i=100,a,b,c;i<1000;i++){
  2. a=parseIne(i/100);
  3. b=parsrInt(i/10)%10;
  4. c=i%10;
  5. if(a*a*a+b*b*b+c*c*c===i) console.log(i);
  6. }

六 字符串倒装

  1. var str "asdfsdfsdf";
  2. console.log(str.length);//获取字符串长度
  3. var s="";
  4. for(var i=str.length-1;i>=0;i--){
  5. s+=str[i]
  6. }
  7. console.log(s)

0 - 0 - 知识点:

一 ascll码值和数值转换

  • 字符串.charCodeAt(字符串下标): 获取字符串的ascll码值
  • String.formCharCode(ascll码值) : ascll码值对应的值





















字符 ascll码范围
a-z 97-122
A-Z 65-90
0-9 48-57

所有码表地址 http://ascii.911cha.com/

  1. console.log("azAZ09".charCodeAt(5));//57
  2. console.log(String.fromCharCode(97));//a

二 &emsp;&ensp;&nbsp; 区别

  • &emsp; 汉字宽
    它叫“全角空格”,全称是Em Space,em是字体排印学的计量单位,相当于当前指定的点数。例如,1 em在16px的字体中就是16px。此空格也传承空格家族一贯的特性:透明的,此空格也有个相当稳健的特性,就是其占据的宽度正好是1个中文宽度,而且基本上不受字体影响。
  • &ensp;字母宽
    它叫”半角空格”,全称是En Space,en是字体排印学的计量单位,为em宽度的一半。根据定义,它等同于字体度的一半(如16px字体中就是8px)。名义上是小写字母n的宽度。此空格传承空格家族一贯的特性:透明的,此空格有个相当稳健的特性,就是其占据的宽度正好是1/2个中文宽度,而且基本上不受字体影响。
  • -&nbsp;不换行空格

它叫不换行空格,全称No-Break Space,它是最常见和我们使用最多的空格,大多数的人可能只接触了 ,它是按下space键产生的空格。在HTML中,如果你用空格键产生此空格,空格是不会累加的(只算1个)。要使用html实体表示才可累加,该空格占据宽度受字体影响明显而强烈。

标注: https://www.jianshu.com/p/160e5cb0209c

发表评论

表情:
评论列表 (有 0 条评论,107人围观)

还没有评论,来说两句吧...

相关阅读