Day02 JavaScript の基礎に関するいくつかの小さな事例 (問題を解決するための複数の方法)

        今日は後編の小さな JavaScript ケースの整理を始めました. 当初はすべての記事を整理する予定でしたが、検索したところ、小さなパートナーが質問の 1 つのキーワードを検索すると、以下の場合. 、見つけるのは非常に困難です。

たとえば、この記事には 100 件のケースがあり、友人の中には非常に見つけにくい質問 67 を検索した人もいるので、今後は各記事に5 件のケースを設定することにしました。

皆さんの都合の良い時は、私も気楽にやっています 弟の記事が参考になったら、高評価を忘れずに!

それでは早速本日の乾物へ!

それでは早速本日の乾物へ!

それでは早速本日の乾物へ!

ケース 1: (6 つの方法) 2 つの数値の最大値を比較する

// - タイトルの説明: ユーザーが 2 つの値を順番に入力すると、最大値が最後にポップアップ表示されます

// - トピックのヒント: 比較演算子を使用して最大値をポップします

6つの方法のアイデアは次のとおりです。

方法1:if文を使って理想の状態で簡単に判断する

方法 2: 三項式を使用して対応する効果を完成させる

方法 3: スイッチを使用してスイッチの定義を終了する この点を理解していれば、スイッチの背後に問題はありません。

次の 3 つは、ユーザー入力が数値であるかどうかを判断する非理想的な条件に基づいており、実際の開発環境により近いものです。

方法 4: アップグレード版ではサイクルが追加され、数値でない場合は再入力が必要であると判断でき、常に比較することもできます

方法 5: isNaN を使用して入力が数値かどうかを判断する

方法 6: number() を使用して文字列を強制的に数値に変換する      

補足: 最後の 3 つの方法は、次の 2 日間の知識を使用しており、プレビュー後に柔軟に使用できます。

// 方法一  用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;
        }
    }

ケース 2: (3 つの方法) ゲストを夕食に招待する

    // モニターのポケットに金額を受け取りますか?

    // 2000以上なら洋食を食べてください。

    // 2000 未満、1500 以上の場合は、ファーストフードを食べてください。

    // 1500未満、1000以上の場合は飲んでください。

    // 1000 未満、500 以上の場合はロリポップを食べてください。

    // それ以外の場合は、モニターに次回十分なお金を持ってくるように通知します

3つの考え方:

1.通常のif文

2.書き換えに切り替える

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中嵌套,而且得用两次三元,毕竟一次三元只出两个结果,而且三元出的是个值,还得用取整   不推荐  大家可以自己摸索一下,  也可以给我留言大家一块整整

ケース 3: (2 通りの書き方)ユーザーが入力したユーザー名とパスワードを受け取る

ユーザー名がadminでパスワードが123456の場合、ユーザーは正常にログインするように求められます。正しくない場合は、アカウント番号またはパスワードが間違っていることを示すプロンプトが表示されます。パスワードをもう一度入力してください

方法1:三項式の二層入れ子(この事例を見ると三項式の理解が深まります)

方法 2: 通常の 3 項式 + 論理 AND 演算子

    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: (4 通りの書き方) 点数換算、点数付け、成績判定。A90以上、B80以上90未満、C70以上80未満、D60以上70未満、E60未満 

方法 1: 従来の if 書き込み

方法 2: アップグレードされたバージョンはサイクルを追加し、サイクルに習熟します

方法 3: スイッチを使用してさらにいくつかのケースを記述する. 理想的には、入力は直接数値に変換されるスコアです。

方法 4: アップグレードされたバージョン. すべての要因を考慮に入れます. 数字ですか? ループする必要がありますか? 終了する方法は?

// 方法一  常规
    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('您的输入有误,青重新输入')
        }
    }

ケース 5: (2 通りの書き方)

宝くじの当選番号は 6 です. ユーザーには 3 回のチャンスがあります. 3 回以内に 6 を入力すると, おめでとうのメッセージは表示されません. 3 回失敗すると失敗します.

方法 1: ループで実行しない (if ロジック機能を使用する)

方法 2: ループで実行する (if while do...while の 3 つのループすべてを記述できます。初心者が増えることは常に良いことです)。

    // 不用循环做
    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つのケースを整理しました。お役に立ったら、忘れずに気に入ってください!

将来的には、参考と実践のためにさまざまな実用的なケースが更新されます。さまざまな解決策があります。ブックマークすることを忘れないでください。

ありがとうありがとう~~~you~you~you~le~~

おすすめ

転載: blog.csdn.net/fightingLKP/article/details/124100786