05 流程控制结构

JavaScript中的流程控制语句,跟其他编程语言是一样的,主要有3种:

(1)顺序结构;

(2)分支结构;

(3)循环结构;

一、分支结构
在JavaScript中,分支结构共有5种:

(1)if(条件表达式)...语句;

(2)if(条件表达式)……else语句;

(3)if(条件表达式)……else if(条件表达式)……语句;适合检查多种条件

(4)if语句的嵌套;

(5)switch语句;

执行思路,利用我们表达式的值,和case后面的选项相匹配,如果匹配上,就执行该case里面的语句,如果都没有匹配上,那么执行default里面的语句;

        switch (表达式) {

            case value1:

                执行语句1;

                break;

            case value2:

                执行语句2;

                break;

            ...

            default:

                执行最后的语句;

        }

switch语句和if...else if 语句..的区别:

  • 一般情况下,它们两个语句可以相互替换
  • switch….case语句通常处理case为比较确定值的情况,而if….else….语句更加灵活,常用于范围判断(大于、等于某个范围)
  • switch语句进行条件判断后直接执行到程序的条件语句,效率更高。而if….else语句有几种条件,就得判断多少次。
  • 当分支比较少时,if…else语句的执行效率比switch语句高。 当分支比较多时,switch语句的执行效率比较高,而且结构更清晰

条件表达式:

条件表达式?  表达式1 :表达式2

执行思路:如果天剑表达式的结果为真 则返回 表达式1, 如果条件为假, 则返回 表达式2

// 如果数字小于10,则在前面添加 '0'

 var time = prompt('请您输入一个0~59之间的一个数字');

        var result = time < 10 ? '0' + time : time;

        alert(result);

二、循环结构
在JavaScript中,循环结构总有3种:

(1)while语句;

(2)do……while语句;(先执行循环体,再去执行条件表达式,至少执行1次)

(3)for语句;

 for(初始化变量;条件表达式;操作表达式){

           执行语句块;

        }

双重for循环,外层循环一次,里面的循环全部执行。

for(外层的初始化变量;外层的条件表达;外层的操作表达){

   for(里层的初始化变量;里层的条件表达;;里层的操作表达)

      {

                //执行语句;

       }

}

三、跳转语句
JavaScript支持的跳转语句主要有2种:

(1)break语句;

(2)continue语句;(退出当前循环)

break语句与continue语句的主要区别是:break是彻底结束循环,而continue是结束本次循环。在这一点跟其他编程语言(如C和Java)相同。
 

训练题:

题目1:接收用户输入的年份,如果是闰年就弹出闰年,否则弹出是平年。

算法:能够被4整除且不能整除100的为闰年,或者能够被400整除的就是闰年。

代码实现如下:

 var year = prompt('请输入年份');

        if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {

            alert(year + '是闰年');

        }

        else {

            alert(year + '是平年');

        }

题目2:分别计算100以内所有奇数和偶数的和,比较简单,使用for语句就可以实现。

        var even = 0;//存奇数

        var odd = 0;//存偶数

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

            if (i % 2 == 0) {

                odd = odd + i;

            } else {

                even = even + i;

            }

        }

        console.log('1-100之间所有奇数的和:' + even);

        console.log('1-100之间所有偶数的和:' + odd);

题目3:打印九九乘法表,里层循环控制每一层的个数j<=i

//打印九九乘法表

        var str = '';

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

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

                str += j + '×' + i + '=' + i * j+'\t';

            }

            str+='\n';

        }

        console.log(str);

//弹出一个提示框,你爱我吗?r如果输入你爱我,就结束提醒,如果不是,一直循环!

        var message=prompt('你爱我吗?');

        while(message!=='我爱你'){

            message=prompt('你爱我吗');

        }

        alert('我也爱你啊!');

题目3:判断100~100以内的水仙花数。“水仙花数”是指一个3位数,其各位数字立方和等于该数的本身。

 for (var i = 100; i < 1000; i++) {

            var ge = i % 10;//提取个位数

            var shi = parseInt((i / 10) % 10);//提取十位数

            var bai = parseInt(i / 100);//获取百位数

            if (i=== ge * ge * ge + shi * shi * shi + bai * bai * bai) {

                console.log(i + '是水仙花数'+'\n');

            }

        

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值