Skr-Eric的Javascript课堂(二)——JS的运算符和流程控制

 运算符

 

1. 位运算符

程序中的数据在计算机中都是以二进制形式存储的,位运算

实际上是对二进制的每一位进行操作

1. 按位与 :&

将操作数转换二进制之后,按位与,相同则为1,不同

则为0

et :

3 & 5 = 1

011  

& 101

------

001

使用 :常用于判断整数的奇偶,将一个操作数与1做

位与,结果为1,该操作数为基数,结果为0,说明操作

数为偶数

3 & 1 = 1

011

001

------

001

2 & 1 = 0

010

001

------

000

2. 按位或 :|

将操作数转换为二进制之后,做位或,

et :

3 | 5 = 7

011

101

-------

111

3. 按位异或 :^

两位不同则为1,相同则为0

et :

3 ^ 5 = 6

011

101

-------

110

异或操作可以在不借助三方变量的情况下互换两个变量

的值

et :

var a = 3,b = 5;

var c = a;

a = b;

b = c;

使用异或 :

a = a ^ b;  //6

b = a ^ b;  // 6 ^ 5  -> 011 = 3

a = a ^ b;  // 6 ^ 3  -> 101 = 5

 

2. 三目(元)运算符

语法 :

表达式1 ? 表达式2 : 表达式3

使用 :

1. 判断表达式1的结果(布尔值)

2. 如果表达式1结果为true,执行表达式2

3. 如果表达式1结果为false,执行表达式3

 

 流程控制

控制代码的执行顺序

流程控制语句 :

1. 顺序结构 : 代码自上至下一行一行执行

2. 选择结构(分支)

3. 循环结构

 

1. 选择结构 :

根据条件判断的结果选择执行某一段代码

1. 语法 :

1. if(判断条件){

条件为真时执行的代码段,

条件为假时,会跳过

}

注意 :

1. {} 可以省略,省略之后,认为if()后面的

第一条语句是条件成立时待执行的语句

2. 判断条件必须是布尔类型的结果

3. 非零值都为真,零为假

以下条件都为假 :

if(0){}

if(0.0){}

if(""){}

if(NaN){}

if(undefined){}

if(null){}

2. if-else语句

语法 :

if(条件){

条件为真时执行

}else {

条件为假时执行

}

et :

var a = 20;

if(a > 18){

console.log("成年人可以进网吧");

}else{

console.log("未成年人禁止入内");

}

3. if-else if语句

多重分支结构

if(条件1){

条件1成立时执行

}else if(条件2){

条件2成立时执行

}else if(){

 

}else{

条件不满足时执行

}

练习 :

1. 成绩等级判定

2. 日期计算器

1. 接收用户输入 年 月 日,判断用户输入的日期

是当年的第几天

et : 2018-1-15

 2018-10-15

实现 :

1. 将当前月之前的整月天数累加

2. 加上当前月的天数

3. 当前年份是否是闰年

2. switch 语句

语法 :

switch(值){

case 1 :

值匹配恒等时,执行的语句

break;

case 2 :

值匹配恒等时,执行的语句

break;

...

default :

待执行的语句

}

注意 :

1. switch一般用于值得匹配,()中表示的是值

2. case 可以使用多个,每个case对应一种情况

3. case 后面直接写要对应匹配的值

et :

var a = 10;

swicth(a){

case 1 :

console.log("a=1");

break;

case 12 :

console.log("a=10");

break;

default :

console.log("查询不到");

}

4. 如果case给出的值匹配成功,执行当前case :

后面的语句

5. break 用于跳出匹配,不再向下执行匹配

6. default 表示所有的case都匹配失败之后默认执行的

语句

其他情况 :

1. default 关键字一般写在switch的末尾,匹配失败

之后最终执行的操作,可以省略

2. break 表示跳出switch语句,可以省略,如果省略

break,会从当前匹配到的case开始向后依次执行所有

的语句。

3. case 关键字,可以共用代码语句,注意配合break

et :

case 1:

case 2:

case 3:

console.log();

break;

 

2. 循环结构 :

重复执行某一段代码

1. 循环语句的三要素

1. 循环变量

2. 循环条件

3. 循环体

2. 语法

1. while 循环

while(循环条件){

条件成立时,执行循环体

}

执行流程 :

1. 定义循环变量

2. 判断循环条件

3. 条件成立,执行循环体

4. 更新循环变量 (重点)

5. 重复步骤 2 - 3 - 4,直到条件不成立,跳出循环

练习 :

1. 输出 1-100之间的数字

2. 计算 1-100之间所有数字的和

3. 输出 1-100之间所有3的倍数

2. do-while循环

do{

//循环体

}while(循环条件);

执行流程 :

1. 定义循环变量

2. 执行do操作,循环体

3. 循环体中更新循环变量

4. 判断循环条件,决定是否继续执行循环体

特点 :

do-while循环不管条件是否成立,都至少执行一次

循环体

练习 :

循环接收用户输入,并在控制台中输出;

直到用户输入“exit”,结束循环

练习2 :

使用while循环改版日期计算器

3. for循环

for(定义循环变量;循环条件;更新循环变量;){

//循环体

}

et :

for(var i = 1;i < 101; i ++){

console.log(i);

}

for循环与while循环 :

1. 循环的执行流程相同

2. for循环常用于确定循环次数的场合

while循环常用于不确定循环次数的场合

4. 循环控制

1. continue 跳出本次循环,开始下一次循环

2. break 结束循环,break后面的语句都不执行

练习 :

1. 判断素数(质数)

 只能被1和自身整除的数是质数

 接收用户输入的数字,判断是否为素数

2. 接收用户输入年月日,判断当日是星期几

参考 :已知 1990年1月1日是星期一

15 号 星期一

25 号 ?

3. 循环的嵌套

可以再循环中再次嵌套其他循环

for(var i = 0; i < 10; i ++){

for(var j = 0; j < 10 ; j ++){

}

}

 

 

 

想要看更多的课程请微信关注SkrEric的编程课堂

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值