2025年3月16日 星期日 甲辰(龙)年 月十五 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > JavaScript

JavaScript的选择结构你真的了解吗?(看完这一篇就够了)

时间:02-23来源:作者:点击数:9

目录

选择结构

实现选择结构的语句

三元(目)运算符

案例

判断一个年份是闰年还是平年

判断一个数是偶数还是奇数

判断一个数是正数还是负数

if 分支语句

单分支选择语句

案例

根据成绩判断是否发放清华大学的通知书?

输入任意两个数,然后交换位置输出(如:a=4,b=5输出a=5,b=4)

输入任意三个数,由大到小输出

双分支选择语句

案例

求两个数中的最大值?

求三个数的最大值?

输入一个成绩,判断是毕业还是挂科

多分支选择语句

案例

任意输入一个数字,判断是星期几?

判断成绩优(90-100)良(80-89)中(70-79)差(60-69)不及格(<60)

设计一个具有+、-、*、/、%的简单计算器

switch 分支语句

案例

任意输入一个数字,判断是星期几?

输入一个0-6的整数,判断哪一天是工作日,哪一天是休息日?

输入一个月份,输出这个月有多少天?

判断成绩优(90-100)良(80-89)中(70-79)差(60-69)不及格(<60)

计算某日是该年的第几天?

选择结构

用于判断给定的条件,根据条件的结果来选择执行不同的语句段。

实现选择结构的语句

  1. 三元运算符
  2. if
  3. switch

三元(目)运算符

条件?语句:语句

规则:如果条件为真,则执行?后面的语句。 如果条件为假,则执行:后面的语句。

案例
  • 判断一个年份是闰年还是平年
  • <script>
  • //判断一个年份是闰年还是平年
  • 一个年份? 当我们不知道这个数据的时候?问用户要?怎么要?
  • 1. prompt() 类型:String 需要的是数字:parseInt() parseFloat() Number()
  • //判断闰年还是平年,根据条件进行判断,选择一种结果
  • //判断闰年的条件 1. 能被4整除但不能被100整除 2. 能被400整除
  • 能被4整除: 余数为0 0 天然为假 我们这里需要让0为真,怎么让0为真? 1. 0 === 0 2. !0
  • 不能被100整除: 余数不能为00的数,天然为真
  • i_year % 4 === 0 && i_year % 100 !== 0 || i_year % 400 === 0
  • !(i_year % 4) && i_year % 100 || !(i_year % 400)
  • //准备一个变量,接收一个年份:
  • var i_year = parseInt(prompt('请输入一个年份:'));
  • alert(i_year % 4 === 0 && i_year % 100 !== 0 || i_year % 400 === 0 ? '闰年' : '平年');
  • </script>
  • 判断一个数是偶数还是奇数
  • <script>
  • //判断一个数是偶数还是奇数
  • 一个数? prompt() parseInt()
  • 偶数还是奇数?
  • 比如有一个数4 5
  • // 0 假
  • 能被2整除 ? 奇数 : 偶数
  • 能被2整除 === 0 ? 偶数 : 奇数
  • 能被2整除 == 0 ? 奇数 :偶数
  • //准备一个变量,接收一个整数:
  • var i = parseInt(prompt('请输入一个整数:'));
  • //判断
  • alert(i % 2 ? '奇数' : '偶数');
  • </script>
  • 判断一个数是正数还是负数
  • <script>
  • //判断一个数是正数还是负数
  • 一个数? prompt() parseInt()
  • 正数还是负数?
  • 大于0 : 正数
  • 小于0 : 负数
  • 等于0 : 既不是正数,也不是负数
  • i === 0 ? '既不是正数,也不是负数' : i > 0 ? '正数' : '负数'
  • //准备一个变量,接收一个整数
  • var i = parseInt(prompt('请输入一个整数:'));
  • alert(i === 0 ? '既不是正数,也不是负数' : i > 0 ? '正数' : '负数');
  • </script>

if 分支语句

单分支选择语句

  • if(条件){
  •    语句组;
  • }

流程:当程序执行到if时,先计算表达式的值,如果值为true,则执行后面大括号中的语句;如果值为false时,执行if语句后面的其它语句

案例
  • 根据成绩判断是否发放清华大学的通知书?
  • <script>
  • //根据成绩判断是否发放清华大学的通知书?
  • 成绩? prompt() parseInt()
  • 清华大学的通知书,前提条件?满足分数线? 700
  • 成绩 >= 700
  • 通知书
  • 单分支
  • //1. 准备一个变量,接收一个成绩
  • var i_score = parseInt(prompt('请输入一个成绩:'));
  • //2. 判断成绩是否合格
  • if( i_score >= 700 ){
  • alert('祝贺你拿到清华大学的通知书!');
  • }
  • </script>
  • 输入任意两个数,然后交换位置输出(如:a=4,b=5输出a=5,b=4)
  • <script>
  • //输入任意两个数,然后交换位置输出(如:a=4,b=5输出a=5,b=4)
  • 输入任意两个数: prompt() parseInt()
  • 交换位置: 需要一个空容器,进行交换
  • //1. 准备两个变量,接收两个整数:
  • var a = parseInt(prompt('请输入一个整数:'));
  • var b = parseInt(prompt('请输入一个整数:'));
  • //输出一次未交换的数据
  • console.log('交换前:\na=' + a + '\nb=' + b);
  • //交换位置
  • //准备一个空变量
  • var t = a;
  • a = b;
  • b = t;
  • //输出一次交换后的数据
  • console.log('交换后:\na=' + a + '\nb=' + b);
  • </script>
  • 输入任意三个数,由大到小输出
  • <script>
  • //输入任意三个数,由大到小输出
  • 输入任意三个数? parInt() prompt()
  • 大到小输出(排序):判断
  • 两个数比较 a b c
  • 1. 确保 a 和 b 中的最大值放到 a中
  • if(a < b){
  • 交换a 和 b 中的值
  • }
  • 2. 确保a 和 c 中的最大值放到 a中
  • if(a < c){
  • 交换a 和 c 中的值
  • }
  • 3. 确保 b 和 c 中的最大值放到 b 中
  • if(b < c){
  • 交换 b 和c中的值
  • }
  • //1. 准备三个变量,接收数据
  • var a = parseInt(prompt('请输入一个整数:'));
  • var b = parseInt(prompt('请输入一个整数:'));
  • var c = parseInt(prompt('请输入一个整数:'));
  • //2. 确保 a 和 b 中的最大值放到 a中
  • if(a < b){
  • var t = a;
  • a = b;
  • b = t;
  • }
  • //3. 确保a 和 c 中的最大值放到 a中
  • if(a < c){
  • var t = a;
  • a = c;
  • c = t;
  • }
  • //4. 确保 b 和 c 中的最大值放到 b 中
  • if(b < c){
  • var t = b;
  • b = c;
  • c = t;
  • }
  • //5. 输出结果
  • console.log(a,b,c);
  • </script>

双分支选择语句

  • if(条件){
  •    语句组;
  • }else{
  •    语句组;
  • }

流程:当程序执行到if时,先计算表达式的值,值为true时:执行if后面语句组;值为false时,执行else后的语句组。

案例
  • 求两个数中的最大值?
  • <script>
  • 求两个数中的最大值?
  • 两个数? prompt() parseInt()
  • 最大值 一条件,两个结果,使用双分支
  • //1. 准备两个变量,接收数据
  • var i = parseInt(prompt('请输入一个整数:'));
  • var j = parseInt(prompt('请输入一个整数:'));
  • //2. 选择语句(双分支)
  • if( i > j ){
  • alert(i);
  • }else{
  • alert(j);
  • }
  • </script>
  • 求三个数的最大值?
  • <script>
  • 求三个数的最大值?
  • 三个数? prompt() parseInt()
  • 最大值? 两两比较最为简单 a b c
  • 1. 求出a和b中的最大值,放到一个新的变量中。max
  • 2. 如果c > max,则将c的值存放到max中
  • //1. 准备变量
  • var a = parseInt(prompt('请输入一个整数:'));
  • var b = parseInt(prompt('请输入一个整数:'));
  • var c = parseInt(prompt('请输入一个整数:'));
  • //最大值
  • var max;
  • //2. 比较前两个数,求出最大值
  • if(a > b){
  • max = a;
  • }else{ //否则
  • max = b;
  • }
  • //3. 比较下一个数与max,求出最大值
  • if(c > max){
  • max = c;
  • }
  • //4. 输出结果
  • alert('最大值是:' + max);
  • </script>
  • 输入一个成绩,判断是毕业还是挂科
  • <script>
  • 输入一个成绩,判断是升班还是重修
  • 成绩 prpmpt() parseInt()
  • 升班还是重修? 及格分数线:90
  • 一个条件 (成绩 >= 90) ‘毕业' '挂科' 双分支
  • //1. 准备一个变量
  • var i_score = parseInt(prompt('请输入一个成绩:'));
  • //2. 判断
  • if( i_score >= 90 ){
  • alert('毕业');
  • }else{
  • alert('挂科');
  • }
  • </script>

多分支选择语句

  • if(条件1){
  •    语句组1;
  • }else if(条件2){
  •    语句组2;
  • }
  • ……
  • }else if(条件n){
  •    语句组n;
  • }else{
  •    语句组n + 1;
  • }

流程:当程序执行到if时,先判断条件1的值,值为true时,执行语句组1;值为false时,再判断条件2的值,值为true时,执行语句组2;值为false时,再判断条件3的值,依此类推,直到判断条件n的值,值为true时,执行语句组n,值为false时,执行语句组n+1;

案例
  • 任意输入一个数字,判断是星期几?
  • <script>
  • 任意输入一个数字,判断是星期几?
  • 一个数字: prompt() parseInt()
  • 1 2 3 4 5 6 7 多条件 多结果 多分支
  • //准备一个变量
  • var i = parseInt(prompt('请输入1~7中的整数:'));
  • //判断
  • if(i === 1){
  • alert('星期一');
  • }else if(i === 2){
  • alert('星期二');
  • }else if(i === 3){
  • alert('星期三');
  • }else if(i === 4){
  • alert('星期四');
  • }else if(i === 5){
  • alert('星期五');
  • }else if(i === 6){
  • alert('星期六');
  • }else if(i === 7){
  • alert('星期日');
  • }else{
  • alert('请输入1~7中的整数!');
  • }
  • </script>
  • 判断成绩优(90-100)良(80-89)中(70-79)差(60-69)不及格(<60)
  • <script>
  • 判断成绩优(90-100)良(80-89)中(70-79)差(60-69)不及格(<60)
  • 成绩 : prompt() parseInt()
  • 90-100 : score >= 90 && score <= 100
  • 80-89: score >= 80 && score < 90
  • 70-79: score >= 70 && score < 80
  • 60-69: score >= 60 && score < 70
  • <60: score < 60
  • 多分支
  • //1. 准备一个变量
  • var score = parseInt(prompt('请输入一个成绩:'));
  • //2. 根据成绩进行判断
  • if(score < 0 || score > 100){
  • alert('一边儿玩去!');
  • }else{
  • if(score >= 90 && score <= 100){
  • alert('优');
  • }else if(score >= 80){
  • alert('良');
  • }else if(score >= 70){
  • alert('中');
  • }else if(score >= 60){
  • alert('差');
  • }else{
  • alert('不及格');
  • }
  • }
  • </script>
  • 设计一个具有+、-、*、/、%的简单计算器
  • <script>
  • 设计一个具有+、-、*、/、%的简单计算器
  • 准备变量:3个 第一个接收数字 第二个接收运算符 第三个接收数字 prompt() parseInt()
  • 根据运算符进行判断
  • +、-、*、/、% 多条件 多结果 多分支
  • //1. 准备变量
  • //1.1 第一个数字
  • var i = parseInt(prompt('请输入第一个整数:'));
  • //1.2 运算符
  • var ch = prompt('请输入一个算术运算符:');
  • //1.3 第二个数字
  • var j = parseInt(prompt('请输入第二个整数:'));
  • //2. 根据运算符进行判断
  • if(ch === '+'){
  • alert(i + '+' + j + '=' + (i + j));
  • }else if(ch === '-'){
  • alert(i + '-' + j + '=' + (i - j));
  • }else if(ch === '*'){
  • alert(i + '*' + j + '=' + i * j);
  • }else if(ch === '/'){
  • alert(j === 0 ? '除数不能为零!' : i + '/' + j + '=' + (i / j).toFixed(2));
  • }else if(ch === '%'){
  • alert(j === 0 ? '除数不能为零!' : i + '%' + j + '=' + i % j);
  • }else{
  • alert('请输入一个正确的算术运算符!');
  • }
  • </script>

switch 分支语句

  • switch(表达式){
  •    case 表达式 : 语句组; [break;]
  •    case 表达式 : 语句组; [break;]
  •    ……
  •    case 表达式 : 语句组; [break;]
  •   [default : 语句组;]
  • }
  • 规则:先计算switch后的表达式的值,如果这个值与 某个case后表达式的值 相同时,则执行这个case后面的语句组,如果语句组后有break,则直接跳出switch语句。如果没有break,则继续执行后面所有的语句组,直到遇到break或右大括号停止。
案例
  • 任意输入一个数字,判断是星期几?
  • <script>
  • 任意输入一个数字,判断是星期几?
  • 数字
  • 7个条件,每一个条件对应一个结果
  • //1. 准备一个变量
  • var i = parseInt(prompt('请输入一个1~7中的整数:'));
  • //2. 根据这个整数进行判断
  • switch(i){
  • 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('输入错误!');
  • }
  • </script>
  • 输入一个0-6的整数,判断哪一天是工作日,哪一天是休息日?
  • <script>
  • 输入一个0-6的整数,判断哪一天是工作日,哪一天是休息日?
  • 输入一个0-6的整数 prompt() parseInt()
  • 工作日: 1 2 3 4 5
  • 休息日: 6 7
  • //1. 准备一个变量
  • var i = parseInt(prompt('请输入0~6中的整数:'));
  • //2. 根据这个整数进行判断
  • switch(i){
  • case 1 :
  • case 2 :
  • case 3 :
  • case 4 :
  • case 5 : console.log('工作日'); break;
  • case 6 :
  • case 0 : console.log('休息日'); break;
  • default : console.log('末日'); break;
  • }
  • </script>
  • 输入一个月份,输出这个月有多少天?
  • <script>
  • 输入一个月份,输出这个月有多少天?
  • 一个月份 : prompt() parseInt()
  • 1 3 5 7 8 10 12 (31)
  • 4 6 9 11 (30)
  • 2 闰年(29) 平年(28
  • //1. 准备一个变量
  • var i_month = parseInt(prompt('请输入一个月份:'));
  • //2. 根据月份进行判断
  • switch(i_month){
  • case 1 :
  • case 3 :
  • case 5 :
  • case 7 :
  • case 8 :
  • case 10 :
  • case 12 : alert('31天');break;
  • case 4 :
  • case 6 :
  • case 9 :
  • case 11 : alert('30天'); break;
  • case 2 :
  • //准备变量,接收年份
  • var i_year = parseInt(prompt('请输入一个年份:'));
  • alert(!(i_year % 4) && i_year % 100 || !(i_year % 400) ? '29天' : '28天');
  • }
  • /*
  • 1. 能被4整除
  • 0 (假) 想办法让0变为真 0 == 0 0 === 0 !0
  • i % 4
  • 2. 不能被100整除
  • i % 100 结果是一个不为0的数 本身就是真
  • */
  • </script>
  • 判断成绩优(90-100)良(80-89)中(70-79)差(60-69)不及格(<60)
  • <script>
  • 判断成绩优(90-100)良(80-89)中(70-79)差(60-69)不及格(<60)
  • 成绩 : prompt() parseInt()
  • 10
  • 90-100 : 90 91 92 93 99 9
  • 80-89: 80 81 82 83 89 8
  • 70-79: 70 ~79 7
  • 60-69: 60 61 69 6
  • <60:
  • 多分支
  • //1. 准备一个变量
  • var score = parseInt(prompt('请输入一个成绩:'));
  • //2. 根据成绩进行判断
  • if(score < 0 || score > 100){
  • alert('一边儿玩去!');
  • }else{
  • switch(parseInt(score / 10)){
  • case 10 :
  • case 9 : alert('优'); break;
  • case 8 : alert('良'); break;
  • case 7 : alert('中'); break;
  • case 6 : alert('差'); break;
  • default : alert('不及格');
  • }
  • }
  • </script>
  • 计算某日是该年的第几天?
  • <script>
  • 计算某日是该年的第几天?
  • 1. 需要哪些变量?
  • 年 月 日
  • 根据月份
  • 从当前月份的之前月份开始加
  • 20221130
  • 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 日
  • 202231
  • 2 + 1 + 日
  • //1. 准备变量
  • //1.1 年
  • var year = parseInt(prompt('请输入一个年份:'));
  • //1.2 月
  • var month = parseInt(prompt('请输入一个月份:'));
  • //1.3 日
  • var date = parseInt(prompt('请输入日:'));
  • //1.4 总天数
  • var sum = 0;
  • //2. 根据月份判断 (从当前月的 ***前面*** 所有月份天数的和)
  • switch(month){ // 12月20日
  • case 12 : sum += 30; //(30是11月份的天数) sum = 0 + 30 30
  • case 11 : sum += 31; //(31是10月份的天数) sum = 30 + 31
  • case 10 : sum += 30; //(30是9月份的天数) sum = 61 + 30
  • case 9 : sum += 31; // sum = 91 + 31
  • case 8 : sum += 31; // sum = 122 + 31
  • case 7 : sum += 30; // sum = 153 + 30
  • case 6 : sum += 31; // sum = 183 + 31
  • case 5 : sum += 30; // sum = 214 + 30
  • case 4 : sum += 31; // sum = 244 + 31
  • case 3 : sum += !(year % 4) && year % 100 || !(year % 400) ? 29 : 28; // sum = 275 + 28
  • case 2 : sum += 31; // sum = 303 + 31
  • case 1 : sum += date; // sum = 334 + 20 sum = 354
  • }
  • //3. 输出结果
  • alert(year + '年' + month + '月' + date + '日是' + year + '年中的第' + sum + '天');
  • </script>
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐