• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
百事可爱
一起努力鸭~~~
博客园    首页    新随笔    联系   管理    订阅  订阅
JS02 流程控制

6.运算符

表达式和返回值
表达式:是由数字,运算符,变量等组成的式子
表达式都有一个结果,返回给我们,即返回值

1. 算术运算符:+ - * / %

  1. 浮点数的运算存在精度问题,不要直接判断两个浮点数是否相等
  2. 一个数能被整除,用到%(求余数)为0

2..前置自增 和后置自增(要与变量搭配使用)

1.前置自增 先自加,后运算 ++a
2. 后置自增 先原值返回,后自加 a++
3. 前置与后置,单独使用时,执行结果相同,就是a=a+1
但参与运算时,有区别:
var a=10;
var b=a++ +10 //a++ =10 b=20 a=11
var b=++a +10 //++a =11 b=21 a=11

3. 比较运算符 (关系运算符),返回一个布尔值

< > >= <= == != === !===

  1. == 在比较时,判断两边的值是否相等
    可以转型,就是将字符串型转为数字类型
    例如:10 == '10' 返回ture
  2. === 在比较时,判断两边的值和数据类型是否相等,不可以转型
    例如:10 === '10' 返回 false

4.逻辑运算符

1.逻辑与 && 全真为真
逻辑或 || 全假为假
逻辑非 !
2.短路运算(逻辑中断)
当有多个表达式时,左边的表达式值可以确定就可以确定结果时,就不在继续执行右边的运算了
1.表达式1 && 表达式2
若表达式1的值为真,则返回表达式2
若表达式1的值为假,则返回表达式1
2. 表达式1 || 表达式2
若表达式1的值为真,则返回表达式1
若表达式1的值为假,则返回表达式2
例子:
此时,逻辑运算符两边的表达式是纯数字,肯定是ture
若表达式是表示空或否定时是假, 0 "" null undefined NaN
其余是真

 <script>
 alert(3>5 && 3>2);//false
  alert(3<5 && 3>2);//true
  alert(3<5 || 3<2);//true
  alert(!2);//false
  console.log(123&&456);//456 
  console.log(123||456); //123
  console.log(''&&11); // ''
   console.log(0&&11); // 0
    console.log(NaN&&11); //NaN
	 console.log(null&&11); //null
	 console.log(0 ||11); //11
</script>

5.赋值运算符:

= 从右到左直接赋值
+= -= (也有乘除) a=a+2 a+=2

6.运算优先级:(由高到低)

小括号
一元运算符: ++ -- !
算数运算符: 先 乘 除 % 后 + -
关系运算符: >>= < <=
相等运算符: == != === !===
逻辑运算符: 先&&后||
赋值 运算符:=

7. 流程控制

1. 分支结构

1. if语句

判断闰年的例子
要求:接收用户输入的年份,若是闰年就弹出闰年,否则弹出平年
分析:
能被4整除且不能被100整除的为闰年或者能被400整除的是润年
1,弹出prompt输入框,让用户输入年份,并将此值保存到变量中
2.用if语句来判断

<script>
var year=prompt('请输入年份:');
if(year%4==0 && year%100!=0||year%400==0){
	alert('输入的年份是闰年');
	}
	else{
	alert('输入的年份是平年');
		}
</script>
</head>

2,if else if 语句,用于多选一

例如判断成绩的级别:
要求接收用户输入的分数,根据分数输出对应的等级字母A, B, C, D,E
其中:
1.90分(含)以上,输出A
2. 80分(含)~90分(不含),输出B
3.70(含)~80(不含),输出C
4.60(含)~ 70(不含),输出D
5.60分(不含)以下,输出E

<script>
var  fen=prompt('请输入成绩:');
if(fen>=90){
	alert('A');
	}此处是由大到小依次判断
	else if(fen>=80){
		alert('B');
		}
		else if(fen>=70){
		alert('C');
		}
		else if(fen>=60){
		alert('D');
		}
		else{	
		alert('D');
			}
 </script>
</head>

3, 三目运算符组成的式子称为三元表达式:

条件表达式 ? 表达式1 : 表达式2
如果 条件表达式 为真,返回表达式1
如果 条件表达式 为假,返回表达式2
表达式都是有返回值的
var n=10;
var result=n>3 ? "是的" : "不是的" ;

  <script>
        // 数字补0:用户输入数字若小于10,就在其前面补0,否则,无需补0
        var num = prompt('请输入一个0到30的数字:');
        var result = num <10 ? '0'+num :num;
        alert(result);
    </script>
</head>

4. switch语句,多分支语句,实现多选一

  1. 语法:
    switch(表达式){
    case value1:
    语句1;
    break;
    case value2:
    语句2;
    break;
    default:
    执行最后的语句;
    }
    利用表达式的值和case后面的选项值进行匹配(两个值相等),若匹配上,就执行;若都没匹配上,就执行
    default:
    执行最后的语句;
  2. 平时,将switch后面的表达式写成变量;
  3. 表达式写成变量,变量的值和case里面的值匹配,要求全等,就是值和数据类型要一致
  4. 若当前的case后面没有break,则不会退出switch,继续执行下一个case

2. 循环结构

1. for循环

  1. for循环可以重复执行某些相同代码
  2. for循环可以重复执行些许不同的代码,利用计数器
<script>
        for(var i=1;i<=10;i++){
            if(i==1){
                console.log('你今年一岁了');
            }
            else{
                console.log('你已经'+ i +'岁了');
            }

        }
    </script>
</head>
  1. for循环可以重复执行某些操作,例如做一些算术运算
    求和:
<script>
        var s=0;
        for(var i=1;i<=10;i++){
            s+=i; 
        }
        console.log(s);
    </script>

要求:
用户输入班级人数,之后依次输入每个学生的成绩,最后打印出该班级的总成绩和平均成绩
分析:

  1. 弹出输入框输入总人数num
  2. 依次输入每个学生的成绩,那 弹出输入框的次数等于总人数,用到for循环,i<=num
  3. 处理数据
  4. 弹出结果
<script>
        var num=prompt('请输入班级总人数:');
        var sum=0;
        var average=0;
        for(var i=1;i<=num;i++){
            var score=prompt('请输入第'+ i +'个学生成绩');
            sum=sum+parseFloat(score);
            // 因为prompt()的返回的数据是字符串,
            // 要转换为数字型,才可以与加号连用,进行加法运算
        }
        average = sum/num;
        alert('总成绩:'+sum );
        alert('平均成绩:'+average);
    </script>
</head>
4. 双重for循环
<script>
        // 当要打印一行星号时:用到字符串的拼接
        var num=prompt('请输入星号的个数:');
        var str='';
        for(var i=1;i<=num;i++){
            str+='*';
        }
        console.log(str);
    </script>

当涉及到行和列的,要用到双重for循环,就是循环嵌套
外层循环一次,内层的循环执行全部

  1. 要求:用户输入行数和列数,打印出星号
<script>
        // 当要打印n行n列星号时:用到字符串的拼接
        var num1=prompt('请输入行数:');
        var num2=prompt('请输入列数:');
        var str='';
        for(var i=1;i<=num1;i++){
           for(var j=1;j<=num2;j++){
                 str+='*';
           }
           str+='\n';
        }
        console.log(str);
    </script>
  1. 要求:打印出10行的倒三角星号
<script>
        var str='';
        for(var i=1;i<=10;i++){//外层控制行数
           for(var j=i;j<=10;j++){//里层打印的个数不同,关键是 个数初始 j  =  i
                 str+='*';
           }
           str+='\n';
        }
        console.log(str);
    </script>
  1. 打印九九乘法表
 <script>
        //  分析:
        //  1. 共9行,每行个数不同,用双重for循环
        //  2. 外层控制行数i,循环9次
        //  3.内层控制每行的公式
        //  4.关键:  每一行的公式的个数和行数一致,就是j<=i
        //  5.要有换行转义字符'\n',发现每个公式列在前,相邻公式间有空袭,所以用'\t'
        var str='';
        for(var i=1;i<=9;i++){
            for(var j=1;j<=i;j++){
                str+=j + 'x' + i +'='+ i*j +'\t';
            }
            str+='\n';
        }
console.log(str);
     </script>

2.while{}

<script>里面有计数器,同时,有操作表达式来完成计数器的更新
        var i = 1;
        while (i <= 10) {
            console.log('你好');
            i++;
        }
    </script>

3.do{} while()

<script>
        var i = 1;
         do {
            console.log('你好');
            i++;
        } while(i<=10)  //此处没有分号
    </script>

do while循环至少执行一次

4. continue关键字 和break

  1. 遇到continue关键字,退出本次循环,若循环体 continue关键字后面还有语句也不执行了,i++, 进入下一次循环
  2. 遇到break直接跳出循环,不再进行循环了
posted on 2021-10-30 23:32  精致猪猪侠  阅读(179)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3