ECMAScript1.2 表达式|语句|break|continue

表达式

一个表达式可以产生一个值,有可能是运算,函数调用,

有可能是字面量,表达式可以放在任何需要值的地方。

 

语句

语句可以理解为一个行为,循环语句和判断语句就是典型的语句。

一个程序有很多个语句组成,一般情况下是分割成一个一个语句。

流程控制  由三种基本结构组成

顺序结构

从上到下执行的代码就是顺序结构,

程序默认就是由上到下顺序执行的。

 

分支结构

根据不同情况,执行对应代码。

例如:老师留了作业,做完就可以回家,没有做完就继续做。

 

循环结构

重复做一件事。

例如:在操场跑10圈,一圈一圈重复的来做,直到跑完10圈为止,

有一个条件,每跑完一圈都要想一下自己跑够10圈了没有。

 

分支结构

if 语句    if...else if...else

// 
if (/*条件表达式*/) {
    // 执行语句
}


//
if (/*条件表达式*/) {
     // 执行语句
} else {
    // 否则执行语句
}

//
if (/*条件表达式1*/) {
    // 成立执行语句
} else if (/*条件表达式2*/) {
    // 成立执行语句
} else if (/*条件表达式3*/) {
    // 成立执行语句
} else {
    // 否则执行语句
}
View Code

 小案例1

// 求两个数的最大数

var n1 = 66;
var n2 = 888;
// 条件表达式
if (n1 > n2) {
    // 执行语句
    console.log('n1:' + n1);
} else {
   // 否执行语句  
    console.log('n2:' + n2);
}
View Code

小案例2

// 判断一个数是偶数还是奇数

var n1 = 6;
// 取余%2等于0,就是偶数
if (n1 % 2 === 0) {
    console.log('是偶数');
} else {
   // 否则执行语句  
    console.log('是奇数');
}
View Code

案例3

// 定义一个分数
var score = 88;
// 条件1: 大于等90与小于等于100
if (score >= 90 && score <= 100) {
    console.log('A');
// 条件2:大于等于80与小于90
} else if (score >= 80 && score < 90) {
    console.log('B');
// 条件3:大于等于70与小于80
} else if (score >= 70 && score < 80) {
    console.log('C');
// 条件4:大于等于60与小于70
} else if (score >= 60 && score < 70) {
    console.log('D');
// 否则执行语句
} else {
    console.log('E');
}


////////////以上的简写

var score = 88;
if (score >= 90) {
    console.log('A');
} else if (score >= 80) {
    console.log('B');
} else if (score >= 70) {
    console.log('C');
} else if (score >= 60) {
    console.log('D');
} else {
    console.log('E');
}
View Code

 

三元运算  表达式1?表达式2:表达式3

语法结构:  表达式1 ? 表达式2 : 表达式3

解释:当表达式1条件,成立执行表达式2,不成立执行表达式3

是对if...else语句的一种简化写法。

两个小案例认识三元运算:

// 判断是否满18岁
var age = 18;
console.log(age >= 18 ? '已成年' : '未成年');        // 已成年

// 两个数中找最大值
var n1 = 66;
var n2 = 88;
var max = n1 > n2 ? n1 : n2;
console.log(max);
View Code

 

switch语句  switch{case常量1: 语句 break;default: 语句 break;}

注意点1:  每个case块的break可以省略,代码会继续执行下一个case。

注意点2:  switch语句在比较值时使用的是全等操作符(===),

因此不会发生类型转换(例如:字符串'10'不等于数值10)。

语法结构:

// 语法结构

switch (expression) {
    case 常量1:
    语句;
    break;
    case 常量2:
    语句;
    break;
    case 常量3:
    语句;
    break;
    ........
    case 常量n:
    语句;
    break;
    default:
    语句;
    break;
}
View Code

小案例认识switch:

// 输出星期几

var day = 6;
switch (day) {
    case 1:
    console.log('星期一');
    break;    
    case 2:
    console.log('星期二');
    break;
    case 3:
    console.log('星期三');
    break;
    case 4:
    console.log('星期四');
    break;
    case 5:
    console.log('星期五');
    break;
    case 6:
    console.log('星期六');
    break;
    case 7:
    console.log('星期日');
    break;
    default:
    console.log('不在星期范围内');
    break;
}
View Code

案例2

// 把百分制转换为ABCDE

var score = 88;
// 两位数转换成一位数
score = parseInt(score / 10);
switch (score) {
    case 10:
    case 9:
    console.log('A');
    break;
    case 8:
    console.log('B');
    break;
    case 7:
    console.log('C');
    break;
    case 6:
    console.log('D');
    break;
    default:
    console.log('E');
    break;
}
    
View Code

最后的default类似于if语句最后的else,当以上条件都不成立才执行

 

循环解构

while循环

while (表达式) {

// 循环体

}

// 打印1到100之间的数
var number = 1;

while (number <= 100) {

console.log(number);

// 每执行循环体一次,number自身就+1
number++;
}
View Code

当表达式的条件成立则执行循环体。

do...while循环

do {

// 循环体

} while (表达式)

// 先执行一次循环体再判断条件
var number = 1;
do {
// 循环体
console.log(number);
number++;
} while (number > 2)    // 条件不成立就停止执行循环体
View Code

先执行一次循环体,再判断表达式,如果表达式条件成立则继续执行循环体。

 

for 循环

for (初始化表达式; 比较表达式; 自增表达式) {

// 循环体

}

// 打印1到10之间的数字

for (var i = 1; i <= 10; i++) {
// 循环体
console.log(i);
}
View Code

执行顺序:初始化表达式>>>比较表达式>>>循环体>>>自增表达式

初始化表达式只执行一次!

 

练习例子

在控制台输出正方形:

// 打印一个10*10的正方形

var str = '';
// 外层循环控制行数
for (var i = 0; i < 10; i++) {
    // 内层循环控制每行中字符的个数
    for (var j = 0; j < 10; j++) {
        // 拼接正方形
        str = str + '* ';
        // 以上的简写str += '* ';
    }
    // 控制换行
    str += '\n';
}
// 打印
console.log(str);
View Code

 打印九九乘法表:

// 拼接完的字符串
var str = '';
// 外层循环控制行数
for (var i = 1; i <= 9; i++) {
    // 内层循环控制每行有几组
    for (var j = i; j <= 9; j++) {
       // 拼接
        str += i + '*' + j + '=' +  i * j + '\t';
    }
    // 换行
    str += '\n';
}
console.log(str);
View Code

打印直角三角形:

var str = '';
for (var i = 0; i < 9; i++) {
    // 内层循环与外层循环建立联系
    for(var j = i; j < 9; j++) {
        str += '* ';
    }
    // 换行
    str += '\n';
}
console.log(str);
View Code

求1~100之间所有数的乘积:

// 接收这个乘积
var num = 1;
for (var i = 1; i <= 100; i++) {
    num *= i;
}
console.log(num);
View Code

 

break和continue

break:终止循环

continue:跳出当次循环,继续下一次循环

break例子:求整数50到200的第一个能被7整除的数

for (var i = 50; i <= 200; i++) {
    if (i % 7 === 0) {
        console.log(i);    // 56
        // 终止循环
        break;
    }
}
View Code

continue例子:求整数1到100的累加值,但要跳过所有个数为3的数

// 总数
var sum = 0;
for (var i = 1; i <= 100; i++) {
    // 判断是否是个数为3的数
    if (i % 10 === 3) {
        // 跳出当次循环
        continue;
    } else {
        // 累加
        sum += i;
    }
}
console.log(sum);    // 4570
View Code

 job

有本金10000,年利率是千分之一,计算5年后获得的本金是多少

// 本金
var money = 10000;
// 利率
var rate = 0.003;
//  累加5次
for (var i = 1; i <= 5; i++) {
    money += money * rate;
}
console.log(money);    // 10150.90270405243
View Code

兔子规律:1,1,2,3,5,8,13,21..十个月后有多少只

// n1和n2是两个月的兔子的数量
var n1 = 1;
var n2 = 1;
// n3变量的值是n1+n2的结果
var n3;
// 由于两个月数量已知,所以我们从第三个月开始算起
for (var i = 3; i <= 10; i++) {
    n3 = n1 + n2;
    n1 = n2;
    n2 = n3;
}
console.log(n3);
View Code

 

posted @ 2019-03-24 19:44  Kay_xs  阅读(197)  评论(0编辑  收藏  举报