🌈个人主页:前端青山
🔥系列专栏:JavaScript篇
🔖人终将被年少不可得之物困其一生
依旧青山,本期给大家带来JavaScript篇专栏内容:JavaScript-选择结构
目录
选择结构
实现选择结构的语句
三元(目)运算符
案例
判断一个年份是闰年还是平年
判断一个数是偶数还是奇数
判断一个数是正数还是负数
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)
计算某日是该年的第几天?
选择结构
用于判断给定的条件,根据条件的结果来选择执行不同的语句段。
实现选择结构的语句
-
三元运算符
-
if
-
switch
三元(目)运算符
条件?语句:语句
规则:如果条件为真,则执行?后面的语句。 如果条件为假,则执行:后面的语句。
案例
-
判断一个年份是闰年还是平年
<script>
//判断一个年份是闰年还是平年
一个年份? 当我们不知道这个数据的时候?问用户要?怎么要?
1. prompt() 类型:String 需要的是数字:parseInt() parseFloat() Number()
//判断闰年还是平年,根据条件进行判断,选择一种结果
//判断闰年的条件 1. 能被4整除但不能被100整除 2. 能被400整除
能被4整除: 余数为0 0 天然为假 我们这里需要让0为真,怎么让0为真? 1. 0 === 0 2. !0
不能被100整除: 余数不能为0 非0的数,天然为真
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后的语句组。文章来源:https://www.toymoban.com/news/detail-760547.html
案例
-
求两个数中的最大值?
<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;文章来源地址https://www.toymoban.com/news/detail-760547.html
案例
-
任意输入一个数字,判断是星期几?
<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. 需要哪些变量?
年 月 日
根据月份
从当前月份的之前月份开始加
2022、11、30
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 日
2022、3、1
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>
到了这里,关于JavaScript的选择结构你真的了解吗?(看完这一篇就够了)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!