复习:
分支语句:
单分支语句:
if(条件){满足条件执行的代码}
赋值运算符
+
+=
-=
*=
/=
a = 1 ;
a += 2 ; //a = a + 2 ;
a -= 2 ;
a /= 2 ;
a %= 2 ;
从页面输入数据的方法
从页面输入的数据默认都是字符串类型
如果要进行数学类的运算,需要进行数据类型转换
var a = window.prompt("请输入第一个数");
var name = window.prompt("请输入您的姓名");
数据类型转换:
//转换为数值类型
//1 使用Number()
a = "123456";
//把a转化为数值类型并且保存到变量a中
a = Number(a);
//2 使用parseInt() 转换为整数的方法
a = "123456";
//把a转换为整数再保存到变量a中
a = parseInt(a);
//3 使用parseFloat()转换为浮点型数值
a = "12345.6";
a = parseFloat(a);
练习题
输入3个数,输出最大值,使用单分支语句实现
可以多次使用单分支语句
分析过程:
假设 a = 5,b=6,c=7
假设a最大,并且把a的值保存到变量max中.
1 max和b比较大小,如果max<b 就把b的值保存到max中,这样max中保存的就是a和b的最大值
2 max和c去比较大小,如果max小于c,就把c的值保存到max中,这样max中保存的就是最大值了
<script>
var a = Number(window.prompt(
"请输入第一个数:"));
var b = Number(window.prompt(
"请输入第二个数:"));
var c = Number(window.prompt(
"请输入第三个数:"));
var max = a ;
if (max < b) {
max = b ;
}
if (max < c) {
max = c ;
}
document.write(a+","+b+","
+c+"中最大的是" +max);
</script>
双分支语句
如果 … 就… 否则 就…
if(条件){满足条件执行的语句}else{不满足条件执行的语句}
如果气温大于37度,就要吃雪糕,否则就继续搬砖
<script>
var t = 37;
var str = "";
if (t >= 37) {
str = "吃雪糕";
} else{
str = "去搬砖";
}
document.write(str);
</script>
if-else语句的另类写法(简化版写法):
三目运算符
a=5,b=8;
max = a>b ? a : b ;
a>b 这是一个条件表达式
a >b ? a : b ; 条件表达式 a>b成立吗?成立就返回a,不成立就返回b
<script>
a = 19 , b = 18;
max = a > b ? "范冰冰" :"杨幂";
document.write(max);
</script>
<script>
var t = 37;
// var str = "";
// if (t >= 37) {
// str = "吃雪糕";
// } else{
// str = "去搬砖";
// }
str = t >= 37 ? "吃雪糕":"去搬砖";
document.write(str);
运算符
逻辑运算符 &
逻辑与 两个条件或者多个条件必须同时具备,那么这些条件之间的关系就是逻辑与的关系.
短路与 &&
当多个条件的前一个条件为false时,直接返回false,不再判断后续条件
电路中的串联
比如,丈母娘挑女婿:
两个条件:年收入: 20W
身高:1.7米
输入年薪和身高 输出丈母娘满意不满意
或者只要满足一个条件:年薪 5个亿
<script>
nx = Number(window.prompt(
"请输入年薪:(单位:万元)"));
tall = Number(window.prompt(
"请输入身高:(单位:米)"));
if (nx >=20 & tall >=1.7) {
document.write("不错");
} else{
document.write("加油");
}
</script>
逻辑或 | (shift )
短路或 || 当前面的条件为true时不再判断后续的条件,直接返回true
电路 并联
逻辑 非
电路 短路
一般能使用短路就使用短路
闰年的判断:
什么是闰年?
1 能够被4整除 并且不能被100整除
year%4 == 0 && year%100 != 0
2 或者能够被400整除的年份
|| year%400 == 0
假设年份使用 year 表示 试着把上面的文本条件写成代码
输入一个年份,输出它是闰年还是平年
<script>
//输入一个年份,判断它是不是闰年
var year = Number(
window.prompt("请输入一个年份:"));
//判断闰年的条件保存到一个变量isrn
var isrn = (year%4==0 && year%100!=0
||year%400==0);
/*var rn = "";
if (isrn) {
rn = "闰年";
} else{
rn = "平年";
}*/
//把分支语句改为三目运算实现
var rn = isrn ? "闰年":"平年";
document.write(year + "是" + rn);
</script>
多重分支语句
3个分支语句
输入一个数,输出它是正数,负数还在零
if-else if-else
if(条件1){满足条件1执行的语句}
else if(条件2){不满足条件1满足条件2执行的语句}
else{不满足条件1,2,其它情况执行的语句}
<script>
//输入一个数,输出它是正数,负数还在零
var n = Number(window.prompt(
"请输入一个数:"));
var str = "";
if(n>0){
str = "正数";
}else if (n == 0) {
str = "零";
} else{
str = "负数";
}
document.write(n +"是" +str);
</script>
多重分支:
if(条件1){满足条件1执行的语句}
[ else if(条件2){不满足条件1满足条件2执行的语句} [else if(条件3){不满足条件1,2满足条件3执行的语句}]…]
[else{不满足前面所有条件,其它情况执行的语句}]
自增自减运算符:只针对变量有效
自增运算符
后++
先取值再加1
先取值是针对后++这个表达式的取值,后++这个表达式的值就是变量的初始值,再加1是指变量的最终取值就是变量的初始值+1
var a = 1;
//后++,a++执行完之后变量a的值自增1
//a++;
document.write(a++);//1
document.write("<hr />");
document.write(a);//2
document.write("<hr />");
前++
先+1再取值
无论是最终变量的值还是前++的值都是变量的初始值+1
var a = 1;
//前++,++a执行完之后变量a的值自增1
//++a;
document.write(++a);//2
document.write("<hr />");
document.write(a);//2
无论前++还是后++,结束后变量的值都会自增1
之所以有前++和后++是因为前++和后++这两个表达式也是有值的.
练习题:输入一个百分制分数,输出属于 优秀,良好,较差. []表示包含边界值,()表示不包含
优秀 80到100 [80,100]
良好 60到80 [60,80)
较差 0到60 [0,60)
<script>
/*>练习题:输入一个百分制分数,
* 输出属于 优秀,良好,较差.
* []表示包含边界值,()表示不包含
>优秀 80到100 [80,100]
100 >= x >=80
x>=80 && x<=100
>良好 60到80 [60,80)
>较差 0到60 [0,60)*/
var score = Number(prompt(
"请输入一个百分制的分数:"));
var level="";
if (score >=80 && score <=100) {
level = "优秀";
} else if(score >=60){
level = "良好";
}else if(score>=0){
level = "较差";
}
document.write(score + "分属于" + level);
</script>
假如分数是5个级别,改怎么实现?
[90,100] A
[80,90) B
[70,80) C
[60,70) D
[0,60) E