JavaScript---part 2

本文详细介绍了JavaScript中的条件语句,包括if、if...else、if...else if...else和switch,并通过实例解释了其用法。接着讲解了循环语句,如for、while和do...while循环,并提供了相关示例。此外,还涵盖了break和continue语句的使用,以及四个编程练习,涉及水仙花数、完数的计算和字符串累加等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、JS条件语句

1、if语句

if语句的语法:

  if(条件表达式) {

        代码段
        
  }

例如:

<script>
        //从页面输入一个数,判断该数是奇数还是偶数
        var pn = parseInt(prompt('请输入一个整数'))
        if (pn % 2 === 0) {
            alert('是偶数')
        }
    </script>

此案例实现的功能:
从页面中输入一个数,把这个数存在pn变量空间中,若此时pn对2取余为零,则说明这个数为偶数

2、if…else 语句

if…else 语句的语法:

if(条件表达式) {
代码段1
}else {
代码段2
}

例如:

<script>
        //从页面输入一个数,判断该数是奇数还是偶数
        var pn = parseInt(prompt('请输入一个整数'))
        if (pn % 2 === 0) {
            alert('是偶数')
        }else {
        alert('是奇数')
        }
    </script>

案例说明:补充了上一个案例条件不满足时执行的语句

3、if…else if…else 语句

if…else if…else 语句的语法:

if(表达式1){
//表达式1为真时执行的代码
}else if(表达式2){
//表达式2为真时执行的代码
}else{
//表达式1和表达式2都为假时执行的代码
}

例如:

<script>
        var s = parseFloat(prompt('请输入一个成绩'))
        var msg = ''

        if (s >= 90) {
            msg = 'A'
        } else if (s >= 80) {
            msg = 'B'
        } else if (s >= 70) {
            msg = 'C'
        } else if (s >= 60) {
            msg = 'D'
        } else if (s < 60) {
            msg = 'E'
        }
        alert(msg)
    </script>

此案例实现的功能:
(1)从键盘输入一个成绩判断等级,90分以上为’'A",80-90分为"B",70-80分为"C",60-70分为"D",60分以下为"E",;
(2)把成绩赋给s这个变量;
(3)第一步判断成绩是否大于等于90,如果满足条件,弹出内容为"A"的警告框;
(4)如果不满足第一个条件(即成绩小于90),再判断是否满足成绩大于等于80这个条件,以此类推;
(5)if…else if…else 语句的如果不满足上一个条件,则依次判断下面的条件,直到找到满足条件的表达式。

4、switch 语句

<script>
        switch (表达式) {
            case 常量1:
                //执行代码块1
                break;
            case 常量2:
                //执行代码块2
                break;
            default:
            //与 case 常量1 和 case 常量2 不同时执行的代码
        }
    </script>
  • 常量的类型必须和表达式的结果相一致
  • case后的常量不允许重复
  • break跳出当前程序
  • switch-case必须和break相结合使用,不然没有选择分支的作用

例如:

<script>
        var a = prompt('请输入一个数字')
        switch (a*1) {
            case 1:
                alert('星期一')
                break;
            case 2:
                alert('星期二')
                break;
            case 3:
                alert('星期三')
                break;
            case 4:
                alert('星期四')
                break;
            case 5:
                alert('星期五')
                break;
            default:
                alert('周末')
                break;
        }
    </script>

此案例实现的功能:
输入1-7的数字,输出对应的星期

二、JS循环语句

(1)for - 循环代码块一定的次数;
(2)while - 当指定的条件为 true 时循环指定的代码块;
(3)do/while - 同样当指定的条件为 true 时循环指定的代码块。

1. for循环

for 循环的语法:

for(表达式1;表达式2;表达式3) {
循环体语句
}

例如:求1-100的整数和

<script>
        var sum = 0
        for (var i = 0; i <= 100; i++) {
            sum += i
        }
        console.log(sum)
    </script>

(1)声明一个变量存储计算的和sum;
(2)第一步计算0+1,第二步计算0+1+2,第三步计算0+1+2+3,依此类推,一共需要计算100次。
(3)每次的操作表达式都是i++,所以i从1加到100就是执行100次循环体

2. while循环

while循环的语法:

while(条件表达式) {
循环体语句;
}

只要满足条件表达式,循环将一直执行代码块,因此一般要将控制循环的变量写在循环体中
如果忘记增加条件中所用变量的值,该循环永远不会结束。这可能导致浏览器崩溃。

例如:用while实现1-100求和

<script>
        var sum = 0
        var i=1
        while (i <= 100) {
            sum += i;
            i++
        }
        console.log(sum)
    </script>

while循环其实就是相当于for循环把初始变量写在循环上面,把操作表达式写在循环体里,把条件表达式写在while的括号里。

3. do/while 循环

do/while循环的语法:

do{
循环体语句
}while (条件表达式);

do/while 循环是while循环的变体,它们的区别在于,do/while 循环不管条件是否满足,它都会执行一次循环体

以顺序结构从上往下执行do语句,执行完后判断条件是否满足,若满足,则返回重复执行大括号了的循环语句。

例如:

<script>
        var i = 0;
        var x='';
        do {
            x = x + '该数字为 ' + i + '\n'
            i++
        } while (i < 0)
        console.log(x)
    </script>

上述条件是i<0,变量初始值是0,不满足条件,但是最后循环体还是会执行一遍,结果是:
在这里插入图片描述

三、break和continue语句

break 语句用于跳出整个循环。

continue 用于跳过当前这次循环。

1.break语句

上面讲的switch语句,每条case语句里都有break语句,这时的break就用于跳出整个switch语句----------如果没有break语句将会执行匹配case后面的所有语句,使得switch语句没有意义。

例如:

<script>
        var a = prompt('请输入一个数字')
        switch (a*1) {
            case 1:
                console.log('星期一')
            case 2:
                console.log('星期二')
            case 3:
                console.log('星期三')
            case 4:
                console.log('星期四')
            case 5:
                console.log('星期五')
            default:
                console.log('周末')
        }
    </script>

当输入4时,出现的结果:
在这里插入图片描述

2. continue 语句

它用于跳出当前这次循环。

<script>
        var x = '';
        for (i = 0; i <= 5; i++) {
            if (i == 3) continue;
            x = i + "\n";
            console.log(x);
        }
</script>

(1)这个循环的循环次数是6次;
(2)每次都把i的值赋给x,i每次自加一;
(3)当i=3时,会跳出这次循环,不执行循环体的内容,继续下一次循环;

所以最后的结果:
在这里插入图片描述
该案例循环还是执行了6次,只是当i=3时,没有执行下面的输出语句。

四、作业

1.输出1000以内的水仙花数

1、输出1000以内的所有’水仙花数’。(‘水仙花数’是一个三位数,每位数字的立方和等于该数)
eg:153 = 1x1x1+5x5x5+3x3x3

<script>
        var n
        for (n = 100; n <= 999; n++) {
            var i = n % 10
            var j = parseInt(n / 10 % 10)
            var k = parseInt(n / 100)
            if (i * i * i + j * j * j + k * k * k == n) {
                console.log('三位数的水仙花数有:',n)
            }
        }
    </script>

(1)水仙花是三位数,所以判断100-999的数即可;
(2)个位就是原数除以10的余数;
(3)十位就是除以10再对10取余最后取整
(4)百位就是对原数除以100的取整;
(5)最后判断个十百的三次方之和是否等于原数,若是,则输出。

最后结果如下:
在这里插入图片描述

2.输出100以内的所有完数

2、输出100以内的所有’完数’。 (‘完数’是该数等于它的所有因子之和(因子不包含它本身))

         eg:6 = 1+2+3 
<script>
        var n,j
        for (n = 2; n <= 100; n++) {
            var s = 0
            for (j = 1; j < n; j++) {
                if (n % j == 0) {
                    s += j
                }
            }
            if (s == n) {
                console.log('100以内的完数有:', n)
            }
        }
        
    </script>

(1)外循环,依次判断2-100所有数;
(2)内循环,取出除过它本身的所有因子并相加;
(3)判断因子和是否与本身相等,若相等则输出;
最后的结果是:
在这里插入图片描述

3.计算a+aa+aaa+…+aa…aa

3、计算a+aa+aaa+aaaa+…aaa的值。a的值、位数从键盘上输入

     eg:a=2,n=5
       
         2+22+222+2222+22222 =  
<script>
        var a = parseInt(prompt('输入a的值:'));
        var n = parseInt(prompt('输入a的位数:'));
        var sum = a,
            temp = a;
        for (var i = 1; i < n; i++) {
            if (n > 1) {
                a = a * 10 + temp;
                sum = sum + a;
            }
        }
        console.log(sum);
</script>

首先分析可得-------后一项是前一项乘10加a的值得来,所以只需要计算下一位的值再把这个值赋给sum这个容器即可。

(1)n是位数,第一项不需要计算,直接赋给sum,所以需要计算才能得到的数有n-1位,从而确定循环次数。
(2)程序中a充当的角色是被加数,所以要把a的值存在temp里参加运算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值