JS判断循环语句
三种常用的判断语句(条件成立做什么,不成立做什么?)
- 1、if...else
if(条件){ //条件只要可以计算出true或false即可,例如> < =的比较/一个值或其取反
}else if(){//else if语句也可以有多个
}else if(){
}
...
else{
}
例如:
var score=prompt("请输入成绩");
console.log(typeof(score));
if (score==100) {
alert("奖励一辆BMW");
}else if(score>=80){
alert("奖励一台iPhone");
}else if(score>=60){
alert("奖励一本参考书");
}else{
alert("没有奖励");
}
- 2、三元运算符 条件?条件成立做的事:条件不成立做的事。
if else的简写
let gender='male'
if (gender=='female') {
console.log('我是女生')
}else if (gender=='male') {
console.log('我是男生')
}
用三元运算符可以简写为:
1)如果处理的事情比较多,可以用()包起来,以逗号分隔
2)如果不需要处理事情,使用null或undefined占位
let gender='male';
gender=='male'?console.log('我是男生'):console.log('我是女生')
gender=='male'?(alert('男生!'),console.log('我是男生')):null
练习:
let a=10
if (a>0) {
if (a<10) {
a++
}else{
a--
}
}else{
if (a>-10) {
a+=2
}
}
可以改写为:
a>0?(a<10?a++:a--):(a>-10?a+=2:null)
注意:三元运算符是简单if else语句的改写,复杂的语句不要使用三目运算符,不利于阅读代码
- 3、switch case:一个变量在不同的值的情况下对应不同的操作
switch(进行判断的变量){
case 成立的条件:
执行语句;
break;//不加break,当前条件成立执行完成后,不论后面的条件是否成立都会执行下一个语句,直到遇到break为止
case 成立的条件:
执行语句;
break;
...
default:
执行语句:
break;
}
var num=3;
switch (num){
case 1 :
alert("星期一");
break;
case 2:
alert("星期二");
break;
case 3:
alert("星期三");
break;
case 4:
case 5://不加break的利用
alert('周四或周五');
break;
default:
break;
}
注意:
if else判断与switch case判断的区别:
swich case语句中的判断是绝对相等(===)
let a=10
swicth (a)
case '10':
console.log(a)
break;
default:
break;
// 相当于if语句===
if (a==='10') {
要点
1、break与continue
break:在循环语句中遇到直接退出该循环,不再执行break后面的语句
continue:在循环中遇到直接退出当前循环,不再执行该循环中continue后面的语句,进入到下一个循环继续执行
2、与=
==:进行比较时如果数据类型不同先转换为一样的数据类型然后再判断
=:数据类型不同直接视为不相等,switch case语句使用=进行判断
3、a++与a+=1或者a=a+1并不完全相等 a++纯粹的数学运算,即使遇到字符串
4、a++与++a
for (var i=0;i<10;i++) {
console.log(i)//0
break;//遇到break直接退出该循环
}
console.log(i)//0 因为i=0时就遇到了break语句退出了循环
for (var i=0;i<10;i++) {
continue;
console.log(i)//因为每次循环都先遇到continue语句然后退出当次循环,进入下一循环,直到i=10,结束整个循环
}
console.log(i)//10 i=10时结束的for循环
let a='10'
a==10?a++:a-- //'10'==10结果为true;'10'++是数学运算
console.log(a)//11
console.log(typeof a)//number
let b='10'
switch (b){
case 10:
b++
break;
default:
b--
}
console.log(b)//9
let a='10'
a++
console.log(a)//11
let b='10'
b+=1
console.log(b)//101
let a=3
console.log(5+(++a)+(a++)+3-2+(--a)+(a--)-2)//5+4+4+1+4+4-2=20
console.log(a)//3