流程控制主要有三种结构,分别是顺序结构,分支结构。
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('您输入的不是一元二次方程')
}