首页 > 其他分享 >JS基础-分支语句

JS基础-分支语句

时间:2023-09-09 09:56:14浏览次数:39  
标签:语句 case 价格 alert break fruit JS 分支

分支语句是流程控制语句当中的一种

可以简单理解为是一种控制条件, 当达到某个条件时,执行相应的代码

IF

IF多条件分支

例如:当 变量 a > b 时, 则执行 语句块1 , 如果 a 等于 b 时,则执行语句块2 ;最后,如果 a > b 时,则执行语句块3

if else 语句当中的语句块一般具有排斥作用。如果执行了语句块1中的内容, 则后续的语句块2至 语句块n 中的内容则不会被执行

用流程图表示如下

Untitled.png

用代码表示

<script>
      var a = 10;
      var b = 20;
      if (a > b) {
        // 语句块1
        console.log("a > b = true");
      } else if (a == b) {
        console.log(" a = b = true");
      } else {
        console.log("a < b = true");
      }
    </script>

如果一个 if 语句 只有一行,可以省略大括号,但最好不要这样做, 因为这增加了阅读代码的成本

if (a > b) console.log("a > b = true");

switch

除了if外的另一种流程控制语句, switch适用于当一个变量被分类讨论的情形

例如输入一种水果,返回他们的价格. 这个例子也可以用if实现,只是看起来没那么简洁

水果 价格(元/斤)
西红柿 1.2
香蕉 1.2
苹果 1
西瓜 1
菠萝 1.5
火龙果 1.5

switch的基础语句就如下所示, 注意其中的 break 关键词,如果不写break, 程序即使命中了某个水果,也不会跳出switch语句, 而是继续向下执行,直到碰到 break语句

其中的 default 是用来处理上面都没有命中的情况, 我们给的水果的价格再多, 也不能穷尽所有的水果价格,所以给一个默认值,就显得比较合理

<script>
  var fruit = prompt("请输入水果");
  switch (fruit) {
    case "西红柿":
      alert("西红柿的价格是 1.2");
      break;
    case "香蕉":
      alert("香蕉的价格是1.2");
    case "苹果":
      alert("苹果的价格是1");
      break;
    case "西瓜":
      alert("西瓜的价格是1");
      break;
    case "菠萝":
      alert("菠萝的价格是1.5");
      break;
    case "火龙果":
      alert("火龙果的价格是1.5");
      break;
  }
</script>

以上的代码还可以做简化,我们发现, 西红柿、香蕉价格相同;苹果、西瓜价格相同;菠萝、火龙果价格相同。我们可以做一个分组, 使得代码更加简洁。代码如下

<script>
    var fruit = prompt("请输入水果");
    switch (fruit) {
      case "西红柿":
      case "香蕉":
        alert(`${fruit}的价格是1.2`);
        break;
      case "苹果":
      case "西瓜":
        alert(`${fruit}的价格是1`);
        break;
      case "菠萝":
      case "火龙果":
        alert(`${fruit}的价格是1.5`);
        break;
      default:
        alert("不知道");
        break;
    }
</script>

三目运算符

JavaScript 等高级语言提供了 三目运算符的语法。其本质也是分支条件语句, 相当于单个的 if…else

语法

// condition : 条件表达式,输出 true 或者 false
// 如果 condition 结果为 true 则 返回 expr1 表达式
// 如果 condition 结果为 false 则 返回 expr2 表达式
condition ? expr1 : expr1

例如

理发店会员剪一次30块钱, 非会员剪一次需要288元

<script>
    var member = "非会员";
    var price = member === "会员" ? 30 : 288;
    console.log(price);
</script

标签:语句,case,价格,alert,break,fruit,JS,分支
From: https://www.cnblogs.com/haloujava/p/17688940.html

相关文章

  • oracle查看表锁以及对应语句
    setlinesize400pagesize999\rcolmachinefora20\rcolsql_idfora20\rcolprev_sql_idfora20\rcolobject_namefora20\rcolobject_typefora20\rcoloracle_usernamefora15\rSELECTs.inst_id,\rs.sql_id,\rs.prev_sql_id,\......
  • P4042 [AHOI2014/JSOI2014] 骑士游戏
    原题非常好的一道题,用到了一个重要的思路:消除\(dp\)的后效性不要觉得这个东西很恐怖,其实这个东西并不复杂,只是名字有点吓人我们容易想到对把原题抽象成一个图,我们容易想到如果该图为\(DAG\)我们要怎么做,直接拓扑上\(dp\)即可但回到原题,我们发现\(dp\)就有了一些问题:这个题是有......
  • @JsonFormat 和 @DateTimeFormat
    前端传给后端:当前端传来的是键值对,用@DateTimeFormat规定接收的时间格式。当前端传来json串,后台用@RequestBody接收,用@JsonFormat规定接收的时间格式。后端传给前端:后端返回给前端的时间值,只能用@JsonFormat规定返回格式,@DateTimeFormat无法决定返回值的格式。参......
  • 关于 Product Pipeline 的 galectin.json 文件
    ProductPipeline概述:"ProductPipeline"是一个广泛用于企业中的术语,指的是一个产品从概念到最终交付的整个过程。它代表了产品的生命周期,从概念、规划、设计、开发、测试、部署,一直到最终发布和维护。在软件开发领域,"ProductPipeline"通常包括多个阶段和环节,每个环节都有特定的......
  • 从零开始搭建EasyDarwin环境——linux系统开发环境nodejs的搭建
    EasyDarwin是目前比较热门的开源平台之一,上一篇我们给大家详细展示了搭建EasyDarwin环境前实现虚拟机Linux系统共享目录,本文我们将说明一下如何在Linux下搭建起nodejs环境。1.首先安装wgetyuminstall-ywget如果已经安装了可以跳过该步骤。2.下载nodejs最新的bin包可以在下载页......
  • fastjson_1.2.24_unserializer_rce
    目录fastjson1.2.24反序列化导致任意命令执行漏洞1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞检测3、漏洞验证1.5、深度利用1、GetShell1.6、修复建议fastjson1.2.24反序列化导致任意命令执行漏洞说明内容漏洞编号漏洞名称fastj......
  • Fastjson_1.2.47_rce
    目录Fastjson_1.2.47_rce1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞检测3、漏洞验证1.5、深度利用1、反弹Shell1.6、修复建议Fastjson_1.2.47_rce说明内容漏洞编号漏洞名称Fastjson_1.2.47_远程执行漏洞漏洞评级影响范围......
  • sql集合-查询语句
    1,张飞借阅书的籍-子查询SELECTb.book_nameFROMbookinfobINNERJOINbook_borrowbbONb.book_id=bb.book_idWHEREbb.card_id=(SELECTcard_idFROMreaderWHEREname="张飞")2,左/右链接查询SELECTb.book_name,bb.borrow_dataFROMbookinfobRIGHTJOINbook_borrowb......
  • Vue.js 的设计与实现(一)
    一、框架设计思路:权衡的艺术从范式角度看,框架设计成命令式好还是声明式好?框架设计成运行时?编译时?运行时+编译时?1.1、命令式代表框架:jQuery特点:关注过程1.2、声明式代表框架:Vue.js特点:关注结果1.3、例子有以下需求:1、获取id为app的div标签2、它的文本内容为helloworld3、为其绑......
  • Web阶段:第十四章:JSTL标签库
    JSTL标签库JSTL标签库全称是指JSPStandardTagLibraryJSP标准标签库。是一个不断完善的开放源代码的JSP标签库。EL表达式主要是为了替换jsp中的表达式脚本,而标签库则是为了替换代码脚本。这样使得整个jsp页面变得更佳简洁。JSTL由五个不同功能的标签库组成。功能范围URI......