day02关于JavaScript 基础的一些小案例整理(多种方法解题)

        今天开始整理第二部分的JavaScript小案例,本来我打算一篇文章都整理出来,不过我自己搜索的时候发现,如果有小伙伴搜索到其中一个题的关键字,如果在下面,就非常难找。

比如这篇文章有100个案例,有小伙伴搜其中的第67题,这样进来就非常难找,所以我决定以后每篇文章定 5个案例 。

方便大家的时候,我也轻松点,如果小弟的文章对您提供帮助的话,记得点个赞哦!

话不多说,上今天的干货!

话不多说,上今天的干货!

话不多说,上今天的干货!

案例一:(6种方法) 比较两个数的最大值

// - 题目描述:用户依次输入2个值,最后弹出最大的那个值

// - 题目提示:通过比较运算符弹出最大值

6种方法的思路分别是:

方法一:使用 if 语句,理想状态下简单判断

方法二:使用三元表达式,完成相应效果

方法三:使用switch   退出用的switch 的定义,这一点如果理解好了,switch后面肯定就没啥问题

下面三种是建立在非理想状态下,就是判断用户输入的是否是数字,也更加接近工作中的开发环境

方法四:升级版  加入了一个循环  可以判断如果不是数字需要重新输入  也可以一直比较

方法五:使用 isNaN 判断是否输入的是数字

方法六:使用 number()  进行字符串的强行转化成数字型      

补充说明:后面三种方法用的方法是后面两天的知识,大家可以预习后再来灵活运用

// 方法一  用if 语句
    var num1 = +prompt('请输入第一个值:')
    var num2 = +prompt('请输入第二个值:')
    if (num1 > num2) {
        alert('两个数的较大的一个为:' + num1)
    } else {
        alert('两个数的较大的一个为:' + num2)
    }
    // 方法二  用三元表达式
    var num1 = +prompt('请输入第一个值:')
    var num2 = +prompt('请输入第二个值:')
    var max = num1 >= num2 ? num1 : num2;
    alert('两个数的较大的一个为:' + max)
    // 方法三 用switch 做   退出用的switch定义  参考老叶的ATM机

    var num1 = +prompt('请输入第一个值:')
    var num2 = +prompt('请输入第二个值:')
    var flag = true;
    switch (flag) {
        case num1 > num2:
            alert('两个数的较大的一个为:' + num1)
            break;
        case num1 <= num2:
            alert('两个数的较大的一个为:' + num2)
            break;
        default:
            break;
    }

    //方法四 升级版  加入了一个循环  可以判断如果不是数字需要重新输入  也可以一直比较
    var flag = true;
    while (flag) {
        var num1 = +prompt('请输入第一个值:')
        var num2 = +prompt('请输入第二个值:')
        switch (flag) {
            case num1 > num2:
                alert('两个数的较大的一个为:' + num1)
                flag = false;
                break;
            case num1 <= num2:
                alert('两个数的较大的一个为:' + num2)
                flag = false;
                break;
            default:
                alert('您的输入有误,请重新输入数字!')
                break;
        }
    }

    // 方法五
    var flag = true;
    while (flag) {
        var num1 = +prompt('请输入第一个值');
        var num2 = +prompt('请输入第二个值');
        // console.log(typeof num1);
        // if (!isNaN(num1) == true && !isNaN(num2) == true) {
        if (!isNaN(num1) && !isNaN(num1)) {
            // console.log(num1);
            if (num1 > num2) {
                alert('您输入最大的数值为:' + num1);
                flag = false;
            } else {
                alert('您输入最大的数值为:' + num2);
                flag = false;
            }
        } else {
            alert('请输入正确的数值');
            continue;
        }
    }

    // 方法六  
    var num1 = prompt('请输入第一个值');
    var num2 = prompt('请输入第二个值');

    console.log(Number(num1), Number(num2));
    if (Number(num1).toString() == NaN.toString() || Number(num2).toString() == NaN.toString()) {
        alert('NOT OK')
    } else {
        if (num1 > num2) {
            alert('两个值较大的一个为' + num1)
        } else {
            alert('两个值较大的一个为' + num2)
        }
    }
    // ### 3 - 判断奇偶性
    // - 题目描述:
    //   ​	用户输入一个数,判断是奇数还是偶数

    // 方法一  用if 语句

    var num = +prompt('请输入一个数字:')
    if (num % 2 == 0) {
        alert('这是一个偶数')
    } else {
        alert('这是一个奇数')
    }
    // 方法二  用三元表达式
    var num = +prompt('请输入一个数字:')
    var re = num % 2 == 0 ? '偶数' : '奇数';
    alert('这是一个' + re)
    // 方法三 用switch 做   退出用的switch定义  参考老叶的ATM机
    var num = +prompt('请输入一个数字:')
    switch (num % 2) {
        case 0:
            alert('这是一个偶数');
            break;
        case 1:
            alert('这是一个奇数数');
            break;
        default:
            alert('输得什么玩意儿');
            break;
    }

    // 方法三升级  加上while  让它判断持续输出  想出去 可以让flag 为false

    var flag = true;
    while (flag) {
        var num = +prompt('请输入一个数字:')
        switch (num % 2) {
            case 0:
                alert('这是一个偶数');
                flag = false;
                break;
            case 1:
                alert('这是一个奇数数');
                flag = false;
                break;
            default:
                alert('输得什么玩意儿,重新输!');
                break;
        }
    }

案例二:(3种方法) 请客吃饭

    //   ​  接收班长口袋里的钱数?

    //   ​  若大于等于2000,请大家吃西餐。

    //   ​  若小于2000,大于等于1500,请大家吃快餐。

    //   ​  若小于1500,大于等于1000,请大家喝饮料。

    //   ​  若小于1000,大于等于500,请大家吃棒棒糖。

    //   ​  否则提醒班长下次把钱带够

三种方法的思路:

1、常规  if 语句

2、switch 进行改写

3、三元表达式 双层嵌套 

    // 方法一  常规的if语句 
    var monitorMoney = +prompt('班长口袋中有多少钱:')
    if (2000 <= monitorMoney) {
        alert('班长:我请大家吃西餐!')
    } else if (1500 <= monitorMoney) {//  有个注意点 不能够写成(1500 <= monitorMoney < 2000)    但是可以写成 (1500 <= monitorMoney && monitorMoney< 2000)
        alert('班长:我请大家吃快餐!')
    } else if (1000 <= monitorMoney) {
        alert('班长:我请大家喝饮料!')
    } else if (500 <= monitorMoney) {
        alert('班长:我请大家吃棒棒糖!')
    } else if (monitorMoney < 500) {
        alert('哪怕身上无分文,也要花呗度佳人!')
    }


    // 方法二
    var monitorMoney = +prompt('班长口袋中有多少钱:')
    if (monitorMoney > 0) {
        var num1 = parseInt(monitorMoney / 500)
        switch (num1) {
            case 0:
                alert('哪怕身上无分文,也要花呗度佳人!')
                break;
            case 1:
                alert('班长:我请大家吃棒棒糖!')
                break;
            case 2:
                alert('班长:我请大家喝饮料!')
                break;
            case 3:
                alert('班长:我请大家吃快餐!')
                break;
            default:
                alert('班长:我请大家吃西餐!')
                break;
        }
    } else {
        alert('你真是个老穷批')
    }

// 方法三  如果非要用三元表达式,也能做,不过在if中嵌套,而且得用两次三元,毕竟一次三元只出两个结果,而且三元出的是个值,还得用取整   不推荐  大家可以自己摸索一下,  也可以给我留言大家一块整整

案例三:(2种写法)接收用户输入的用户名和密码

用户名admin,密码为123456,则提示用户登录成功,如果不正确,提示账号或者密码错误请从新输入再次输入密码

方法一:三元表达式双层嵌套   (看看这个案例,可以加深对于三元表达式的理解)

方法二:正常三元表达式 + 逻辑与运算符

    var myName = prompt('请输入用户名:')
    var password = prompt('请输入密码:')
    var re = myName == 'asd' ? (password == '123' ? '成功登录' : '密码错误') : '密码名错误'
    console.log(re);
    alert(re)

    // 方法二  三元运算符 判断两个条件
    var name = prompt('请输入姓名')
    var password = prompt('请输入密码')
    var result = name == 'aaa' && password == '123' ? 'ok' : 'not ok'
    console.log(result);
    alert(result)

案例四 :(4种写法) 分数转换,给一个分数,判定等级。大于等于90  A,大于等于80小于90  B,大于等于70小于80  C ,大于等于60小于70 D,小于60 E 

方法一:常规 if 写法

方法二:升级版   加了一个循环 ,更加熟练循环

方法三:用switch  做   多写几个case  理想状态下  输入的是分数,直接转成数字型

方法四  升级版  把所有因素都考虑进去 是不是数字,需不需要循环,多次查询  怎样退出

// 方法一  常规
    var score = prompt('请输一个分数:')
    if (0 <= score && score <= 100) {
        if (score >= 90) {
            alert('您的等级是A')
        } else if (score >= 80) {
            alert('您的等级是B')
        } else if (score >= 70) {
            alert('您的等级是C')
        } else if (score >= 60) {
            alert('您的等级是D')
        } else {
            alert('您的等级是E')
        }
    } else {
        alert('您的输入有误,青重新输入')
    }

    // 方法一  升级版

    var flag = true;
    while (flag) {
        var score = prompt('请输一个分数:\n 如果退出请输入:退出')
        if (0 <= score && score <= 100) {
            if (score >= 90) {
                alert('您的等级是A')
            } else if (score >= 80) {
                alert('您的等级是B')
            } else if (score >= 70) {
                alert('您的等级是C')
            } else if (score >= 60) {
                alert('您的等级是D')
            } else {
                alert('您的等级是E')
            }
        } else if (score == '退出') {
            flag = false;
        } else {
            alert('您的输入有误,青重新输入')
        }
    }


    // 方法三 用switch  做   多写几个case  理想状态下  输入的是分数,直接转成数字型
    var score = +prompt('请输一个分数:\n 如果退出请输入:退出')
    var num = parseInt(score / 10)
    switch (num) {
        case 10:
            alert('您的等级是A')
            break;
        case 9:
            alert('您的等级是A')
            break;
        case 8:
            alert('您的等级是B')
            break;
        case 7:
            alert('您的等级是C')
            break;
        case 6:
            alert('您的等级是D')
            break;
        default:
            alert('您的等级是E')
            break;
    }


    // 方法四  升级版  把所有因素都考虑进去 是不是数字,需不需要循环,多次查询  怎样退出
    var flag = true;
    while (flag) {
        var score = prompt('查询器\n 请输一个分数:\n 如果退出请输入:退出')
        if (0 <= score && score <= 100) {
            var num = parseInt(score / 10)
            switch (num) {
                case 10:
                    alert('您的等级是A')
                    break;
                case 9:
                    alert('您的等级是A')
                    break;
                case 8:
                    alert('您的等级是B')
                    break;
                case 7:
                    alert('您的等级是C')
                    break;
                case 6:
                    alert('您的等级是D')
                    break;
                default:
                    alert('您的等级是E')
                    break;
            }

        } else if (score == '退出') {
            flag = false;
        } else {
            alert('您的输入有误,青重新输入')
        }
    }

案例五:(2种写法)

抽奖活动 幸运数字是6  用户有三次机会  三次之内输入6 则提示恭喜中奖不在弹出,三次都没成功 则失败

方法一:不用循环做    (锻炼一下我们的if逻辑能力)

方法二:用循环做    (if  while  do...while 三种循环大家可以都写一遍,初级多敲敲总是好的)

    // 不用循环做
    var lucky1 = prompt('你有三次机会,请输入数字');
    if (lucky1 == 6) {
        alert('恭喜你中奖')
    } else if (lucky1 != 6) {
        var lucky2 = prompt('你还有两次机会,请输入数字');
        if (lucky2 != 6) {
            var lucky3 = prompt('你只有一次机会,请输入数字');
            if (lucky3 != 6) {
                alert('非常遗憾')
            } else {
                alert('恭喜你中奖')
            }
        } else {
            alert('恭喜你中奖')
        }
    }

    // 用循环做
    var lucky1 = prompt('你有三次机会,请输入数字');
    for (var i = 2; i >= 1; i--) {
        if (lucky1 == 6) {
            alert('恭喜你中奖')
            break;
        } else {
            var lucky3 = prompt('你还有' + i + '次机会,请输入数字');
        }
    }

今天就整理出来呢5个案例,如果对您有用的话,记得点个赞哦!

接下来还会更新各种实用小案例供大家参考练习,还有各种各样的解法,记得收藏一下哦!

谢谢谢谢~~~你~您~您~嘞~~

猜你喜欢

转载自blog.csdn.net/fightingLKP/article/details/124100786