• 2022年9月2日:面向初学者的 web 开发--使用 JavaScript 制定决策


    介绍了 JavaScript if/else 决策概念的基础知识。

    使用JavaScript制定决策

    JavaScript 的一个已知功能是决策功能。 可以使用它来控制代码的运行顺序,并使其更易于重复使用且更可靠。

    布尔运算符

    如果要通过代码定义不同的路径,请使用运算符和布尔变量来执行此操作。

    1. let myTrueBool = true;
    2. let myFalseBool = false;

    有关布尔值的简要回顾

    布尔值只能是两个值:true 或 false

    布尔值以英国数学家、哲学家和逻辑学家 George Boole (1815–1864) 命名。

    比较运算符和布尔值

    运算符通过对创建布尔值进行比较来评估条件。 以下列表描述了经常使用的运算符。

    符号说明示例
    <小于:比较两个值,如果左侧的值小于右侧的值,则返回 true 布尔数据类型5 < 6 // true
    <=小于或等于:比较两个值,如果左侧的值小于或等于右侧的值,则返回 true 布尔数据类型5 <= 6 // true
    >大于:比较两个值,如果左侧的值大于右侧的值,则返回 true 布尔数据类型5 > 6 // false
    >=大于或等于:比较两个值,如果左侧的值大于或等于右侧的值,则返回 true 布尔数据类型5 >= 6 // false
    ===全等:比较两个值,如果右侧和左侧的值相等且具有相同的数据类型,则返回 true 布尔数据类型5 === 6 // false
    !==不等:比较两个值,并返回全等运算符要返回的相反布尔值5 !== 6 // true

    若要使用运算符,可以在赋值或比较过程中将其用于 if/else 构造。

    if...else语句

    If语句

    如果条件为 true,则 if 语句将运行块之间的代码。 if 子句中的条件可以是包含真值的值,或者是计算结果为 true 的条件语句。 以下代码演示如何表示 if 子句。

    1. if (condition){
    2. //Condition was true. Code in this block will run.
    3. }

    比较值

    可以将变量或布尔值传递给 if 子句,如下所示:

    1. let isTrue = true;
    2. if (isTrue) {
    3. // run code if true
    4. }
    5. if (true) {
    6. // run code if true
    7. }

    使用逻辑运算符

    逻辑运算符通常用于形成条件。 需要以下三项:值、显示所需比较方式的比较运算符以及要比较的值。 语法类似于以下代码:

    1. if (value operator compareToThisValue) {
    2. // run code
    3. }

    If...else语句

    当 if 条件的计算结果为 false 时,else 语句将运行块之间的代码。 使用 else 是可选操作。

    1. let currentMoney = 1000;
    2. let laptopPrice = 1500;
    3. if (currentMoney >= laptopPrice) {
    4. //Condition was true. Code in this block will run.
    5. console.log("Getting a new laptop!");
    6. } else{
    7. //Condition was true. Code in this block will run.
    8. console.log("Can't afford a new laptop, yet!");
    9. }

    逻辑运算符

    决策可能需要多个比较,并且可以与逻辑运算符串联在一起,以生成布尔值。

    逻辑运算符和布尔值

    使用特定的运算符可以连接许多布尔语句。 结果是更复杂的语句,其计算结果仍为 true 或 false。 可以使用以下一组运算符来构造这些更复杂的比较:

    符号说明示例
    &&逻辑与:比较两个布尔表达式。 如果两侧都为 true,则仅返回 true。(5 > 6) && (5 < 6 ) //One side is false, other is true. Returns false
    ||逻辑或:比较两个布尔表达式。 如果至少一侧为 true,则返回 true。(5 > 6) || (5 < 6) //One side is false, other is true. Returns true
    !逻辑非:返回布尔表达式的相反值。!(5 > 6) // 5 is not greater than 6, but "!" will return true

    使用逻辑运算符的条件和决策

    可以将这些复杂运算符与两个赋值一起使用,也可以与 if 和 else 子句一起使用。

    在赋值中

    在向变量赋值时,可以使用或 (||) 运算符。

    1. let isHoliday = true;
    2. let isMember = true;
    3. let hasDiscount = isHoliday || isMember;

    在if...else中

    在 if/else 语句中使用此类逻辑运算符。

     通过使用 || 运算符,可以构造一个看起来更复杂的 if 子句。

    1. let currentMoney= 800;
    2. let laptopPrice = 1000;
    3. let laptopDiscountPrice = laptopPrice - (laptopPrice * .20) //Laptop price at 20 percent off
    4. if (currentMoney >= laptopPrice || currentMoney >= laptopDiscountPrice){
    5. //Condition was true. Code in this block will run.
    6. console.log("Getting a new laptop!");
    7. }
    8. else {
    9. //Condition was true. Code in this block will run.
    10. console.log("Can't afford a new laptop, yet!");
    11. }

    非运算符

    涉及 if 的所有内容的计算结果都需要为 true 或 false。 通过使用 ! 运算符,可以对表达式求反。 它应如下所示:

    1. if (!condition) {
    2. // runs if condition is false
    3. } else {
    4. // runs if condition is true
    5. }

    三元表达式

    使用 if...else 并不是表示决策逻辑的唯一方法。 还可以使用名为三元运算符的方法。 其语法如下所示:

    let variable = condition ?  : 

    if...els语句

    作为休闲游戏的一名初级游戏开发人员,你的任务是开始开发二十一点游戏。 对于如何计算点数,二十一点有一些有趣的规则。 你意识到这是应用所学的一些布尔逻辑的绝佳机会。

    计算手牌

    在二十一点中,游戏的目标是战胜庄家。 持有高于庄家但小于或等于 21 的点数即为获胜。

    1. 创建文件 blackjack.js。

      1. touch app.js
      2. code .
    2. 为该文件提供以下起始代码:

      1. let cardOne = 7;
      2. let cardTwo = 5;
      3. let sum = cardOne + cardTwo; // 15

      接下来,你将添加用于模拟再发一张牌的代码。 让我们看看所发生的情况。

    3. 添加以下代码:

      1. let cardThree = 7;
      2. sum += cardThree;
      3. if (sum > 21) {
      4. console.log('You lost');
      5. process.exit(1); // exit program
      6. }
      7. console.log(`You have ${sum} points`);
    4. 运行代码。

      node blackjack.js
      

      可以看到以下输出:

      You have 19 points

    添加一个对手

    你的对手是庄家。 记住规则。 如果你的点数比庄家高,或者庄家超过 21 点,则你会获胜。 让我们实现这些规则。

    1. 添加以下变量来表示庄家纸牌。

      1. let cardOneBank = 7;
      2. let cardTwoBank = 5;
      3. let cardThreeBank = 6;
      4. let cardFourBank = 4;
    2. 接下来,将以下代码添加到文件末尾。

      1. let bankSum = cardOneBank + cardTwoBank + cardThreeBank + cardFourBank;
      2. if (bankSum > 21 || (sum <= 21 && sum > bankSum)) {
      3. console.log('You win');
      4. } else {
      5. console.log('Bank wins');
      6. }
    3. 运行代码。

      node blackjack.js
      

      可以看到以下输出:

      1. You have 19 points
      2. You win

    祝贺你! 你已使用布尔逻辑和运算符成功实现了二十一点中的一些游戏规则。

    完整代码如下:

    1. let cardOne = 7;
    2. let cardTwo = 5;
    3. let sum = cardOne + cardTwo; // 15
    4. let cardOneBank = 7;
    5. let cardTwoBank = 5;
    6. let cardThreeBank = 6;
    7. let cardFourBank = 4;
    8. let cardThree = 7;
    9. sum += cardThree;
    10. if (sum > 21) {
    11. console.log('You lost');
    12. }
    13. console.log(`You have ${sum} points`);
    14. let bankSum = cardOneBank + cardTwoBank + cardThreeBank + cardFourBank;
    15. if (bankSum > 21 || (sum <= 21 && sum > bankSum)) {
    16. console.log('You win');
    17. process.exit(1); // exit program
    18. } else {
    19. console.log('Bank wins');
    20. }

  • 相关阅读:
    DFT工程师怎样才能做到年薪50W+ ?
    Grafana展示Pod的基本信息
    【0227】smgr设计机制之新建一个磁盘表文件
    电源小白入门学习6——锂离子电池特性及充电电路
    微信小程序 uniapp+vue餐厅美食就餐推荐系统
    进程控制2——进程等待
    lua中的正则表达式
    Codeforces Round #833 (Div. 2) C. Zero-Sum Prefixes
    青果教务系统适配小爱课程表
    go的反射和断言
  • 原文地址:https://blog.csdn.net/DXB2021/article/details/126669362