JS基础02之流程控制语句

if-else-if多分支语句

  • 练习案例1
    说明:输入学生的成绩并根据成绩给出相应的等级,
    等级评定标准: 成绩在90–100(包含)之间,显示 A,成绩在80–90(包含)之间, 显示 B,成绩在70–80(包含)之间, 显示 C,成绩在60(包含)–70(包含)之间, 显示 D,成绩在0–60(不包含)之间, 显示 E。
var score = Number(prompt("请输入你的成绩:"));
if (!isNaN(score)){//如果为true,就说明用户输入的不是数字,就不会执行
    if( score > 90 && score <= 100 ){
        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级')
    }
}else{
    console.log('您输入有误,请重新输入!')
}
  • 练习案例2 — 判断一个年份是不是闰年
    说明:闰年指的是 公历 或者是 阳历 , 能被4整除但是不能被100整除,或者能被400整除的年份
var year = parseInt(prompt('请您输入一个年份:'));
if ( year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
    console.log('闰年')
}else{
    console.log('平年')
}

while循环

循环: 要有结束的条件; 要有计数器,用来记录循环的次数。
while循环代码: 先判断条件,满足条件,执行循环体

while(循环条件){
        循环体;
        计数器++}

练习1: 计算1-100之间的所有数字的和

var sum = 0;
var i = 1;
while(i <= 100){
    sum += i;
    i++;
}
console.log('1-100的和为:'+ sum);

案例1:求6的阶乘

var J = 1;
var i = 1;
while(i<=6){
    J *= i;
    i++;
}
console.log(J);

案例2: 求1-100之间所有偶数的和

var sum = 0;
var i = 0; //
while (i <= 100){
    if (i % 2 == 0){
        sum += i;
    }
    i++;
}
console.log(sum);

案例3: 求1-100之间所有奇数的和

var sum2 = 0;
var j = 0; //技术器
while (j <= 100){
    if (j % 2 != 0){
        sum2 += j;
    }
    j++;
}
console.log(sum2);

例4:请输出1-100之间能够被7整除的数字

var k = 0;
while(k<=100){
    if (k%7==0){
        console.log(k + ',')
    }
    k++;
}

案例5: 求账号和密码是否一致,登录的效果实现------- 账号:admin 密码:123 (密码是字符串类型)
提示用户输入账号,提示用户输入密码,如果账号和密码不对应,则一直提示用户输入账号和密码。

var userName = prompt('请您输入账号:');   //变量声明与初始化
var userPwd = prompt('请您输入密码:');
while(userName != 'admin' || userPwd != '123'){
   userName = prompt('请您输入账号:');   //注意这里是变量的重新复制,没有声明
   userPwd = prompt('请您输入密码:');
   console.log('输入错误,请重新输入!')
}
console.log('登陆成功!')

do-while循环

do-while循环的语法格式:

var i=0do{
    循环体
 }while(条件);   注意,while条件后面的分号不要忘记

while 和 do-while 两种循环方式都能够实现某种功能,两种都可以选择,就看哪个用的比较熟练

练习1:输出10次 “欢迎来到JS的世界”

var i = 0;
do {
    console.log('欢迎来到JS的世界!');
    i++;
}while(i<10);

练习2:求100以内所有3的倍数的和

var sum = 0;
var j = 1;
do{
    if (j % 3 == 0){
        sum += j;
    }
    j++;
}while(j <= 100);
console.log(sum);

for循环

for循环语法:

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

执行过程:

  • 先执行表达式1,判断表达式2,如果表达式2不成立,则直接跳出循环,
  • 如果表达式2成立,执行循环体的代码,结束后,跳到表达式3执行,
  • 然后再跳到表达式2判断是否成立,如果不成立,则跳出循环,
  • 如果表达式成立,则执行循环体的代码,然后再跳到表达式3,
  • 再跳到表达式2, ,,,,,,

案例1:求1-100之间所有数字的和

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

案例2:1-100之间所有偶数的和

var sum0 = 0;
for (var j = 1; j <= 100; j++){
    if (j % 2 == 0){
        sum0 += j;
    }
}
console.log(sum0);

案例3:1-100之间所有奇数的和

var sum1 = 0;
for (var k = 1; k <= 100; k++){
    if (k % 2 != 0){
        sum1 += k;
    }
}
console.log(sum1);

案例4:1-100之间所有能被3整除的数字的和

var sum2 = 0;
for (var l = 0; l <= 100; l++){
    if (l % 3 == 0){
        sum2 += l;
    }
}
console.log(sum2);

switch-case

练习1:输入一个学生的成绩等级返回该学生对应的成绩范围。
成绩标准: 如果是 A ,则显示 90–100 的分数
如果是 B ,则显示 80–90 的分数
如果是 C ,则显示 70–80 的分数
如果是 D ,则显示 60–70之间的分数
如果是 E ,则显示 60以下的分数

		var grade = prompt('请输入您的成绩等级:');
        switch (grade){
            case 'A':console.log('90到100之间');break;
            case 'B':console.log('80到90之间');break;
            case 'C':console.log('70到80之间');break;
            case 'D':console.log('60到70之间');break;
            default :console.log('0到60之间');
        }
  • 注意问题:
    * 1. default后面的break可以省略
    * 2. default语句可以省略
    * 3. switch后面表达式的值与case的值进行比较时使用的是严格模式
    * 4. break可以省略,但是他后面的代码会继续执行

练习2: 根据月份显示对应的天数。
1,3,5,7,8,10,12 ----- 31天
2 ----- 28天
4,6,9,11 ----- 30天

		var month=parseInt(prompt('请输入月份:'));
        switch(month){
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:console.log('31天');break;

            case 4:
            case 6:
            case 9:
            case 11:console.log('30天');break;

            case 2:console.log('28天');
        }

练习3: 根据数字,显示对应的星期。

		var num = parseInt(prompt('请输入一个表示星期的数字'));
        switch(num){
            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('输入有误,请重新输入!')
        }
  • 分支语句总结:
    * if语句:一个分支
    * if-else语句:两个分支,最终只执行一个分支
    * if-else if-else if语句: 多分支语句,但是最终也是只会执行一个语句
    * switch-case语句: 多分支语句,最终也是只执行一个语句,注意一定要有break
    * 三元表达式: 和if-else语句效果是一样的
    *
  • 多分支语句:
    * 什么时候使用if-else if-else if语句: 一般是对范围的判断
    * 什么时候使用switch-case语句:一般是对具体的值的判断

流程控制语句案例练习

  1. 本金10000元存入银行,年利率是千分之三,每过一年,将本金和利息相加作为新的本金,计算:5年后,获得的本金是多少?
		var money = 10000;
        var rate = 0.003;
        for (var i = 1; i <= 5; i++) {
            money += money * rate;
        }
        document.write(money)
  1. 乘法口诀表 (一定要会写!!!)
    分析:第i行有i个乘法表达式
    使用i控制行数,放在外循环,使用j控制每行中显示的表达式的个数,放在内循环
		for (var i=1; i<=9 ;i++){
            // 控制每行中显示的个数
            for (var j=1; j<=i; j++){
                document.write(j + '*' + i + '=' + i*j);
                document.write('&nbsp;&nbsp;');
            }
            document.write('<br />');
        }

        document.write('<hr color=#ccc />');

表格版的乘法口诀表

		document.write('<table border="1" cellpadding="8" celspacing="5">');
        for (var n=1; n<=9; n++){ //控制行数
            document.write('<tr>');  //tr是表格的行
            for (var m=1; m<=n; m++){
                document.write('<td>');  //td是表格的单元格,  注意:表格里面没有列的概念
                document.write(m + '*' + n + '=' + n*m);
                document.write('</td>'); //一个单元格到这里结束,单元格之间放的是乘法表达式,一个单元格里面放一个
            }
            document.write('</tr>'); //一个表格的一行到这里结束

        }
        document.write('</table>');

  1. 画星星
		document.write('<p>画出一个5行的三角形的星星:</p>');
        for (var n = 0; n < 5; n++) {
            for (var m = 0; m <= n; m++) {
                document.write('☆');
            }
            document.write('<br/>');
        }
  1. 兔子繁殖问题(黄金分割数列,** 斐波那契数列!!!**一定要会写)
  • 有个人想知道一年之内一对兔子能繁殖多少对? 于是就建了一道围墙,把一对兔子关在里面,已知一对兔子每个月可以生一对小兔子,而一对小兔子从出生后第3个月起每月生一对小兔子,假设一年之内没有发生死亡事件,那么一对兔子一年内(12个月)能繁殖多少对?

    兔子的规律为数列: 1,1,2,3,5,8,13,21,,,

		var f1 = 1;
        var f2 = 1;
        var f = 0;
        for (var i = 3; i <= 12; i++) {
            f = f1 + f2;
            f1 = f2;
            f2 = f;
        }
        document.write(f);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值