JavaScript流程控制-分支结构

        流程控制主要有三种结构,分别是顺序结构分支结构。

1 .if语句

 if语句的结构:

if(表达式){

                        执行语句

                        }

 if语句的执行思路
            如果if的条件表达式为真 true,则执行大括号里面的执行语句
            如果if的条件表达式为假 ,则不执行大括号里面的执行语句  则执行if 语句后面的代码

            if(3>2){
				alert('你笑起来真好看');
			}
			// if 条件表达式为真,则弹出警示框
			if(3<2){
				alert('你笑起来真好看');
			}
			// if条件表达式为假,则不会弹出警示框

2.  if else  双分支结构语句

if else 语句的结构

                 if(条件表达式){
                        执行语句1
                  } else{
                         执行语句2
                  }

 

 if else语句的执行思路
            如果if的条件表达式为真 true,则执行大括号里面的执行语句1
            如果if的条件表达式为假 ,则不执行大括号里面的执行语句  则执行else代码块里面的语句

// 进入网吧的案例, 弹出一个输入框,要求用户输入年龄,如果年龄大于等于18岁,允许进入网吧。
			var age = prompt('请输入您的年龄:');
			if(age >= 18 ){
				alert('您可以进入网吧!');
				console.log('您可以进入网吧!');
			} else {
				alert('您年龄不满足,不可以进入网吧!');
			}
			
			// else后面直接跟大括号
// 判断闰年的案例,接受用户输入的年份,如果是闰年就弹出闰年,否则弹出的是平年
// 判断闰年的算法:能被4整除不能被100整除的为闰年或者能被400整除的就是闰年
				var year =prompt('请您输入年份:');
				if( year %4 == 0 && year %100 !=0  ||  year % 400 == 0){
					alert('您输入的年份是闰年!');
				} else {
					alert('您输入的年份是平年!');
				}

3.  if  else  if 语句

 if  else  if  语句结构:

                if(条件表达式1){
                                    执行语句1
                                        } else if(条件表达式2){
                                    执行语句2
                                        }else {
                                    执行语句3
                                        } 

 

if else if语句的执行思路
                如果if的条件表达式为真 true,则执行大括号里面的执行语句1,直接结束
                如果if的条件表达式为假 ,则不执行表达式1大括号里面的执行语句  
                然后判断表达式2里面的条件,条件为真则执行表达式2的执行语句,里面有多少else if 里面的条件判断都是如此,如果条件都为假,则执行最后的else语句 

  注意点:1)多分支语句还是多选一,最后只能有一个语句执行。
                2)else if 里面的条件理论上是可以任意多个的
                3)else if 中间是有一个空格的

// 判断成绩的级别,接受用户输入的分数,根据分数输出相对应的A B C D E
				var fenshu= prompt('请输入您的分数:');
				if(fenshu>= 90){
					alert('您的成绩等级为A!');
				} else if(fenshu>=80){
					alert('您的成绩等级为B!');
				} else if(fenshu>=70){
					alert('您的成绩等级为C!');
				} else if(fenshu>=60){
					alert('您的成绩等级为D!');
				} else {
					alert('您的成绩等级为E!');
				}

4.switch 语句

switch语句的结构:

                switch(表达式){
                                case value1:
                                    执行语句1;
                                    break;
                                case value2:
                                    执行语句2;
                                    break;
                                   default:
                                执行最后的语句;
                             }

         利用我们表达式的值和case后面的选项值相匹配,如果匹配上,就执行case 里面的语句,如果都没有匹配上,那么执行default里面的语句

	      switch(2){
				case 1:
					console.log('这是1')
					break;
				case 2:
					console.log('这是2')
					break;
				case 3:
					console.log('这是')
					break;
				default:
					console.log('没有匹配结果')
			}

    1.在日常开发当中, switch 里面我们通常写成变量

     2.我们 num的值和case 里面的值相匹配的时候是  全等  ,必须值和数据类型一致才可以 

     3.break 如果当前的case 里面没有break 则不会退出switch 是继续执行下一个case

// 查询水果的案例
			// 用户在弹出框里面输入一个水果,如果有就弹出该水果的价格,如果没有就弹出"没有此水果"
			var fruit =prompt("请输入你查询的水果");
			switch(fruit){
				case'苹果':
				alert('苹果的价格为3.5元/斤');
				break;
				case'榴莲':
				alert('榴莲的价格为35元/斤');
				break;
				default:
				alert('没有此水果');	
			}

switch语句和if else if 语句的区别:

5.三元运算符

语法结构  :条件表达式 ? 表达式1 :表达式2

            // var num =10;
			// var result=num>5 ?   'yes'  :  'no';
			// 表达式是有返回值的 ,把返回值给一个变量,然后最终输出
			// console.log(result);
			
			
			// 数字补充0 的案例  用户输入的数字小于10 ,则再前面进行补0 ,如果数字大于10 则不需要进行补0
			var time=prompt('请您输入一个数字') ;
			var  res=time <10  ?  '0'+time : time ;
			alert(res);
			console.log(res);

具体的例子如下:(代码书写是当前理解写出来的,可能存在不足,希望大家做个借鉴参考)

// 1.用户输入一个数字,判定输入的数字是奇数还是偶数,如果不是数字也要给出提示 
			var num=prompt('请用户输入一个数字:');
			if (num %2 ==0){
				alert('你输入的数字是偶数');
			} else if(num %2 == 1){
				alert('你输入的数字是奇数');
			} else {
				alert('你输入的不是数字');
			}


			// 2.判定两个数字之间的最大值(用户输入两个数字,判定哪个数字大)
			var num1=prompt('请输入第一个数字')*1;
			var num2=prompt('请输入第二个数字');
			if(num1>num2){
				alert(num1);
			} else {
				alert(num2);
			}


			// 3.成绩等级的判定
			var fenshu= prompt('请输入您的分数:');
			if(fenshu>= 90){
				alert('您的成绩等级为A!');
			} else if(fenshu>=80){
				alert('您的成绩等级为B!');
			} else if(fenshu>=70){
				alert('您的成绩等级为C!');
			} else if(fenshu>=60){
				alert('您的成绩等级为D!');
			} else {
				alert('您的成绩等级为E!');
			}


			// 4.用户输入一个年份,判定该年份有多少天
			var year =prompt('请您输入年份:');
			if( year %4 == 0 && year %100 !=0  ||  year % 400 == 0){
				alert('您输入的年份有366天');
			} else {
				alert('您输入的年份有365天');
			}


			// 5.制定学习计划表,输入星期几,能提示今天要学习什么课程
			var day = prompt("请输入今天星期几");
			if (day > 0 && day <= 7) {
			     switch (day) {
			        case "1":
			            alert("今天星期一,要学习Java");
			            break;
			        case "2":
			            alert("今天星期二,要学习C语言");
			            break;
			        case "3":
			            alert("今天星期三,要学习C++");
			            break;
			        case "4":
			            alert("今天星期四,要学习Python");
			            break;
			         case "5":
			            alert("今天星期五,要学习云计算");
			            break;
			        case "6":	 
			            alert("今天星期六,要学习web开发");			 
			            break;		 
			        default:			 
			            alert("今天星期日,要休息");			 
			             break;			 
			    }		 
			} else {			 
			         alert("一周只有7天!!!");
			}

			// 6.出租车,起步价(2公里以内)为7元,超过2公里的按照每公里3元计算。要求根据路程计算费用。
			var lucheng=prompt('请输入您的路程');
			if(lucheng>0  && lucheng<=2){
				alert('您需支付的费用为7元');
			} else if(lucheng>2){
				feiyong=7 + (lucheng-2)*3
				alert('您需支付的费用为'+feiyong+'元')
			}else{
				alert('牛哇 牛哇')
			}

			7.判断闰年(闰年的条件是被4整除。但是不能被100整除;或能被400整除)
			var year =prompt('请您输入年份:');
			if( year %4 == 0 && year %100 !=0  ||  year % 400 == 0){
				alert('您输入的年份是闰年!');
			} else {
				alert('您输入的年份是平年!');
			}


			// 8.根据性别和体重计算输血量,女性体重不超过50kg的输血量为200毫升,否则250毫升;男性不超过60kg的输血量为250kg,否则300毫升。
			var a =prompt("请输入你的性别");
			var b =prompt("请输入你的体重");
			if(a=="女"){
				if(b>0 && b<=50){
					alert("您的输血量为200毫克");
				}else if(b>50){
					alert("您的输血量为250毫克");
				}
			}else if(a=="男") {
				if(b>0 && b<=60){
					alert("您的输血量为250毫克");
				}else if(b>60){
					alert("您的输血量为300毫克")
				}
			}

			// 9.当气温高于26℃时,需要开启制冷空调;气温低于10℃则开启制热空调;其余情况只需要开启送风模式即可。编制自动温控程序,控制操作用输出相应的提示字符串来模拟,比如“开启制冷”
			var wendu =prompt('请输入当前温度');
			if(wendu>=26){
			alert("开启制冷!");
			}
			else if(wendu<=10){
			alert("开启制热!");
			}
			else{
				alert("开启送风!");
			}

			// 10.根据《省电网销售电价表》,居民生活用电按3个梯度收费:月用电量150千瓦时及以下部分,每千瓦时0.4463元,151—400千瓦时部分为0.4663元,401千瓦时以上部分为0.5663元,请编写程序,当输入用户的用电量时,计算出所需付的费用
			// 浮点数精度的问题
			
			var dianliang=prompt('请输入您的用电量');
			if(dianliang>0 &&dianliang<=150){
				num1=dianliang * 0.4463 ;
				alert('您所需的费用为'+num1);
			} else if(dianliang>150 && dianliang<=400){
				num2=150 * 0.4463+(dianliang-150)*0.4663 ;
				alert('您所需的费用为'+num2);
			} else{
				num3=150 * 0.4463+250*0.4663+(dianliang-400)*0.5663;
				alert('您所需的费用为'+num3);
			}


			// 11.假设从A地到B地的火车票有硬座和硬卧,价格分别为100和190元。根据铁路部门规定,未成年人(18周岁以下)身高不足120cm免票,120(含)-150(不含)cm需半票,150及以上的需全票,未成年人卧铺只能减免硬座的半价。请设计一个购票程序,要求输入年龄和身高(未成人需要输入)以及票的类型,输出票的价格。
			var age = prompt('请输入您的年龄');
			if (age >= 18) {
				var piao = prompt('请输入您票的类型');
				if ( piao == '硬座') {
					alert('您车票的价格为:100元');
				} else {
					alert('您车票的价格为:190元');
				}
			} else if(age>0  && age<18){
				var height = prompt('请输入您的身高');
				if (height < 120) {
					alert('你是免票');
				} else if (height >= 120 && height < 150) {
					var piao = prompt('请输入您票的类型');
					if ( piao == '硬座') {
						var piao1 = 100 / 2
						alert('您车票的价格为:' + piao1 + '元');
					} else {
						var piao2 = 190 - (100 / 2)
						alert('您车票的价格为:' + piao2 + '元');
					}
				} else if (height >=150) {
					 var piao = prompt('请输入您票的类型');
					if ( piao == '硬座') {
						alert('您车票的价格为:100元');
					} else {
						alert('您车票的价格为:190元');
					}
				}
			}

			// 12.输出两个数字之间的最大数
			var num1=prompt('请输入第一个数字');
			var num2=prompt('请输入第二个数字');
			if(num1>num2){
				alert(num1);
			} else {
				alert(num2)
			}

			// 13.编写程序输出一元二次方程的解  
			var  a =prompt('请输入第一个数值');
			if( a!= 0){
				var  b =prompt('请输入第二个数值');
				var  c =prompt('请输入第三个数值');
				var num= b*b-4*a*c ;
				var x1 =(-b+Math.sqrt(num))/(2*a);
				var x2 =(-b-Math.sqrt(num))/(2*a);
				if(num>0){
					alert('你输入的方程有两个实数根'+ x1 + x2);

				} else if(num==0){
					alert('你输入的方程只有一个实数根'+ x1);

				}else{
					alert('该方程没有实数根');
				}
			}else {
				alert('您输入的不是一元二次方程')
			}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值