• JavaScript语法知识笔记(三)——条件运算符,流程控制语句,循环


     12.条件运算符

    条件运算符也叫三元运算符

                    语法:

                        条件表达式?语句:语句二

                    -执行的流程

                        条件运算符在执行时,首先对条件表达式进行求职

                            如果该值为true 则执行语句1 斌返回执行结果、

                            如果该值为flase 则执行语句2 斌返回之心结束

                        如果条件表达式的求职结果是一个非布尔值

    1. // true?alert("语句一"):alert("语句二");
    2. var a = 10;
    3. var b = 20;
    4. var c = 50;
    5. // a > b ? alert("a"):alert("b");
    6. //获取a和b的最大值
    7. // var max = a > b ? a : b ;
    8. //获取 a b c 中的最大值
    9. // max = max > c ? max : c;
    10. //不推荐使用,不方便阅读
    11. var max = a > b ? (a > c ? a : c) : (b > c ? b : c);
    12. console.log("max = "+max);
    13. "hello"?alert("语句一"):alert("语句二");

    就和数学中的一样,在js中运算符也由有优先级

                    比如 先乘除 后加减

                在js中有一个运算符符号优先级的表

                    在表中越考上优先级越高,优先级越高越优先计算、

                    优先级一样,从左往右计算

                    可以使用()来改变优先级

     13.流程控制语句

                    -js中的程序是从上到下一行一行的执行

                    -通过流程控制语句可以控制程序执行流程

                        使程序可以根据一定的条件来选择执行

                    -语句的分类

                        1.条件判断语句

                        2.条件分支语句

                        3.循环语句

                a.条件判断语句

                    使用条件判断语句可以在某个语句之前经行判断

                        如果条件成立才会执行语句,条件不成立不执行

                -if语句

                    语法一

                    if(条件表达式){

                        语句

                    }

                    if语句在执行时,会先对条件表达式进行求值判断

                    如果条件表达式的值为true 则执行if后的语句

                    如果条件表达式的值为flase 则不会执行

                    //if只能控制紧随其后的哪个语句

                    可以将这些语句统一放到代码块中

                    If语句后的代码块不是必须的,但是在开发中尽量写上

                    即使if后只有1条

    1. var a = 25;
    2. if(a > 10) {
    3. alert("a 比10大~~~~~~~");
    4. alert("谁也管不了我");
    5. }
    6. if(a > 10 && a <= 20 ){
    7. alert("a大于10,并且a小于等于20");
    8. }

    语法二

                    if(条件表达式){

                        语句...

                    }else{

                        语句...

                    }

                语法三

                    if(条件表达式){

                        语句...

                    }else if(条件表达式){

                        语句...

                    }else if(条件表达式){

                        语句...

                    }

                    if ...else if... else

                        当该语句执行时,会从上而下依次对条件表达式进行求职判断

                        如果值为true 则执行语句

                        如果值为flase 则继续向下

                    只有一个代码块被执行,一但代码块执行了。则直接接收语句

    1. ar age = 60;
    2. if (age > 100){
    3. alert("活着挺没意思的");
    4. }else if(age > 80){
    5. alert("你也老大不小了");
    6. }else if (age >60){
    7. alert("你也退休了");
    8. }else if (age >30){
    9. alert("你也中年了");
    10. }else{
    11. alert("你也陈年了");
    12. }
    13. */
    14. //可以抬出一个提示框会带有一个文本框
    15. /*
    16. */
    17. var score = prompt("请输入小明的期末成绩");
    18. alert(score);

    b.条件分支语句

    条件分支语句也叫switch语句

                    语法

                            switch(条件表达式){

                                case 表达式:

                                    语句...

                                    break;

                                case 表达式:

                                    语句...

                                    break;

                                case 表达式:

                                    语句...

                                    break;

                                default:

                                    语句...

                                    break;

                    执行语句

                        在执行时会一次将case后的的值和switch后的条件表达式进行全等比较

                            如果比较结果为true 则从当前case处开始执行代码

                                当前case后的所有的代码都会执行

                                我们可以在case的后边跟着

                                这样可以确保只会执行当前case后的语句 而不会执行其他的case

                            如果比较结果为flase 则继续向下比较

                            如果所有的比较结果都为flase 则只执行default后的语句

                    switch 语句和if 语句的功能实际上由重复的 使用switch可以实现if的功能

                        同样使用if 也可以实现switch的功能 所以我们使用时,可以更具自己的习惯选择

    1. //根据num的值,输出对应的中文
    2. // var num = "hello";
    3. // if (num == 1){
    4. // console.log("壹");
    5. // }
    6. /*num = 1;
    7. switch(num){
    8. case 1 :
    9. console.log("yi~");
    10. //使用break 可以来退出switch语句
    11. break;
    12. case 2 ;
    13. console.log("er");
    14. break;
    15. case 3 ;
    16. console.log("san");
    17. break;
    18. default:
    19. console.log("非法数字~~~");
    20. break;
    21. }
    22. */
    1. var score = 60;
    2. switch(parseInt(score/10)){
    3. case 10;
    4. case 9;
    5. case 8;
    6. case 7;
    7. case 6;
    8. console.log("合格");
    9. break;
    10. default:
    11. console.log("不合格");
    12. break;
    13. }
    14. switch(true){
    15. case score >=60;
    16. console.log("合格");
    17. break;
    18. default:
    19. console.log("不合格");
    20. break;
    21. }

    14.循环语句

                    通过循环语句可以反复执行一段代码

               a. while循环 -语法

                        while(条件表达式){

                            语句...

                        }

                -while语句在执行时

                    先对条件表达式进行求值判断

                        如果值为true 则执行循环体

                            循环体执行完毕以后 继续对表达式进行判断

                            如果为true 则继续执行循环体 以此类推

                        如果值为false 则终止循环

                        先判断在执行

               b. do...while循环 -语法

                    do{

                        语句...

                    }while(条件表达式)

                -执行流程

                    do...while语句在执行时,会先执行循环体

                        循环体治心完毕以后,在对while后的条件表达式进行判断

                        如果结果为true 则继续执行循环体 执行完毕继续判断

                        如果为flase

                        先执行后判断

                实际上 这两个语句功能类似,不同的是while是先判断后执行

             

    1. var n = 1;
    2. //像这样的条件表达式写死为true的循环,叫做死循环
    3. //该循环不会停止 除非浏览器关闭
    4. //可以使用break 来终止循环
    5. /*while (true) {
    6. alert(n++);
    7. //判断n是否是10
    8. if (n == 10) {
    9. //退出循环
    10. break;
    11. }
    12. }*/
    1. //创建一个循环 往往需要三个步骤
    2. //1.创初始化一个变量
    3. var i = 11;
    4. //2.在循环中设置一个条件表达式
    5. /*while (i < 11) {
    6. alert(i);
    7. //3.定义一个更新表达式 每次更新初始化变量
    8. document.write(i++ +"
      "
      );
    9. }*/
    10. /*
    11. do...while可以保证循环体至少执行一次
    12. 而while不能
    13. */
    14. do {
    15. document.write(i++ +"
      "
      );
    16. } while (i <= 10);

    循环例题:

    1. /*
    2. 但如投资的年利率为5%,试求从1000快镇长到5000快,要多少年
    3. 1000 1000 *1.05
    4. 1000 1000 *1.05
    5. */
    6. //定义一个变量,表示当前的钱数
    7. // var money = 1000;
    8. // //定义一个计数器
    9. // var count = 0;
    10. // //定义一个while循环来计算每年的钱数
    11. // while (money < 5000) {
    12. // money *= 1.05;
    13. // //使count自增
    14. // count++ ;
    15. // }
    16. // //console.log(money);
    17. // console.log("一共需要"+count+"年");
    18. 将prompt放入一个循环中
    19. while (true) {
    20. //score就是小明的期末成绩
    21. var score = prompt("请输入小明的期末成绩(0-100)");
    22. //判断用户输入的值是否合法
    23. if (score >= 0 && score <=100) {
    24. //满足该条件则证明用户的输入合法
    25. break;
    26. }
    27. alert("请输入有效的分数!!!");
    28. }

    c.for循环语句

    for语句 也是一个循环,也称为for 循环

                    在for循环中,为我们提供了准们的位置

                    1.初始化表达式

                    2.条件表达式

                    3.更新表达式

                for循环的语法

                    for(1初始化表达式;2条件表达式;4跟新表达式 ){

                        3o语句...

                    }

                for循环的执行流程

                    1.执行初始化表达式,初始化变量

                    2.执行条件表达式,判断是否执行循环

                        如果为true,则执行循环3

                        如果为false,终止循环

                    4.执行更新表达式,更新表达式执行完毕继续重复

    1. //创建一个执行10次的while循环
    2. //初始化表达式
    3. // var i = 0;
    4. // //创建一个循环,定义条件表达式
    5. // while (i < 10 ) {
    6. // //设置更新表达式
    7. // alert(i++);
    8. // }
    9. // for (var i = 0 ; i < 10 ; i++ ){
    10. // alert(i++);
    11. // // //创建一个循环,定义条件表达式
    12. // // while (i < 10 ) {
    13. // // //设置更新表达式
    14. // // alert(i++);
    15. // // }
    16. // }

    *for循环中的三个部分都可以省略,也可以写在外部

        //  如果在for循环中不写任何的表达式 只写两个

        //  此时循环是一个死循环会一直执行下去,慎用

    for循环例题:

    1. /*
    2. 打印1-100之间所有的奇数之和
    3. */
    4. //打印1-100之间所有的数
    5. /*var sum = 0;
    6. for (var i=1 ; i<=100 ; i++ ) {
    7. //判断i是否是奇数
    8. //不能被2整除的数就是奇数
    9. if (i % 2 = 0) {
    10. //如果i除以2有余数则证明i是奇数
    11. //console.log(i);
    12. sum = sum + 1 ;
    13. }
    14. }
    15. console.log("偶数之和:"+sum);
    16. */
    17. /*
    18. //定义一个变量,来保存总和
    19. var sum = 0;
    20. //定义一个计数器,来记录数量
    21. var count = 0;
    22. for (var i = 1 ; i<=100 ; i++) {
    23. //判断i是否是7的倍数
    24. if ( i % 7 = 0) {
    25. //console.log(i);
    26. sum += i;
    27. //使计数器自增一
    28. count ++ ;
    29. }
    30. }
    31. //输出总和
    32. console.log("总和为"+sum);
    33. //输出总数
    34. console.log("总数量为:"+count);
    35. */
    36. // for (var i = 100; i < 100; i ++) {
    37. // //console.log(i);
    38. // //获取i的百位十位个位的数字
    39. // //获取百位数字
    40. // var bai = parseInt(i /100) ;
    41. // //获取十位数字
    42. // var shi = parseInt((i-bai)*100);
    43. // //获取个位数字
    44. // var ge = i % 10 ;
    45. // //判断是否是水仙花数
    46. // if (bai*bai *bai +shi*shi*shi+ge*ge*ge == i) {
    47. // console.log(i);
    48. // }
    49. // }

    例题二:

    1. <script type="text/javascript">
    2. var num = prompt("请输入一个大于1的整数:");
    3. alert(num);
    4. //判断这个值是否合法
    5. if (num <= 1 ) {
    6. alert("该值不合法");
    7. }else{
    8. //创建一个变量来保存当前的数的状态
    9. //默认当前num是质数
    10. //判断num是否是质数
    11. var flag = true;
    12. //获取2-num之间的数
    13. for (var i = 2 ; i < num ; i++) {
    14. //console.log(i);;
    15. //判断num是否能被i整除
    16. if (num % i != 0) {
    17. //如果num能被i整除,则说明num一定不是质数
    18. flag = false;
    19. //alert(num+"不是质数");
    20. }
    21. }
    22. //如果num是质数则输出
    23. if (flag) {
    24. alert(num+"是质数!!!");
    25. }else{
    26. alert("这个不是质数");
    27. }
    28. }

    嵌套for循环

    /向body中输出一个内容

        //document.wr

        //通过一个for循环来输出

        //这个for循环执行几次,图形的高度就是多少

            *       1       <1  i=0

            **      2       <2  i=1

            ***     3       <3  i=2

            ****    4       <4  i=3

            *****   5       <5  i=4

    1. for (var i = 0; i < 10; i++) {
    2. //在循环的内部再创建一个循环,用来控制图形的宽度
    3. //目前我们的外部的for循环执行1次,内部的就会执行5
    4. //内层循环可以来决定图形的宽度,执行几次图形的宽度就是多少
    5. for (var j = 0; j < 5-i; j++) {
    6. document.write("*   ");
    7. }
    8. //输出一个换行
    9. document.write("
      "
      );
    10. }
    11. //创建外层循环,用来控制乘法表的高度
    12. for (var i = 1 ; i <= 9 ; i++) {
    13. //创建一个内层循环来控制图形的宽度
    14. for (var j = 1; j <= i ; j++) {
    15. document.write(j+"*"+i+"="+i*j+" ");
    16. }
    17. //输出一个换行
    18. document.write("
      "
      );
    19. }
    20. </script>
    21. <style type="text/css">
    22. body{
    23. width: 2000px;
    24. }
    25. span{
    26. /*行内块元素*/
    27. display: inline-block;
    28. width: 100px;
    29. }
    30. </style>

    break关键字可以用来退出switch或循环语句

                    不能在if语句中使用if语句中使用break和continue

                    break关键字会立立即终止离他最近的那个循环语句

    1. /*for (var i = 0; i < 5; i++) {
    2. console.log("@外层循环"+i);
    3. for (var j = 0 ;i < 5 ; j++){
    4. break;
    5. console.log("内层循环" + j);
    6. }
    7. }*/

     可以为循环语句创建一个label,来标识当前的循环

                albel:循环语句

                使用break语句时,可以在break后跟一个label

                    这样break将会结束指定的循环,而不是最近的

    1. /*outer:
    2. for (var i = 0; i < 5; i++) {
    3. console.log("@外层循环"+i);
    4. for (var j = 0 ;i < 5 ; j++){
    5. break outer;
    6. console.log("内层循环" + j);
    7. }
    8. */

     continue关键字可以用来跳过当次循环

                    同样continue也是默认只会对离他最近循环起作用

    1. for (var i = 0 ; i < 5 ; i++) {
    2. console.log(i);
    3. if (i == 2) {
    4. continue;
    5. }
    6. console.log(i);
    7. }

  • 相关阅读:
    【STM32】标准库的引入
    网安之python基础学习作业(1)
    Redis.conf详解
    深度学习学习率的调整
    FPGA在汽车领域的应用简谈
    SElinux 导致 Keepalived 检测脚本无法执行
    计算机毕设 深度学习 大数据 股票预测系统 - python lstm
    python -pandas -处理excel合并单元格问题
    如何用产品思维做好互联网运营?
    跟女友旅游三天,多亏Python治好了我的精神内耗
  • 原文地址:https://blog.csdn.net/WZY22502701/article/details/127611545