分支结构
逻辑分支就是根据我们设定好的条件来决定要不要执行某些代码
if 条件分支结构
if 语句
if(条件表达式) //条件表达式的结果最终一定是一个布尔值
语句; //条件表达式修饰后面的一条语句
// 条件为 true 的时候执行 {} 里面的代码
if (true) {
alert('因为条件是 true,我会执行')
}
// 条件为 false 的时候不执行 {} 里面的代码
if (false) {
alert('因为条件是 false,我不会执行')
}
if else 语句
-
通过 if 条件来决定,执行哪一个
{}
里面的代码 -
语法: `if (条件) { 条件为 true 的时候执行 } else { 条件为 false 的时候执行 }
-
两个
{}
内的代码一定有一个会执行(只执行一个)
// 条件为 true 的时候,会执行 if 后面的 {}
if (true) {
alert('因为条件是 true,我会执行')
} else {
alert('因为条件是 true,我不会执行')
}
// 条件为 false 的时候,会执行 else 后面的 {}
if (false) {
alert('因为条件为 false,我不会执行')
} else {
alert('因为条件为 false,我会执行')
}
if else if … 语句
-
可以通过 if 和 else if 来设置多个条件进行判断
-
语法:
if (条件1) { 条件1为 true 的时候执行 } else if (条件2) { 条件2为 true 的时候执行 }
-
会从头开始依次判断条件
-
如果第一个条件为 true 了,那么就会执行后面的
{}
里面的内容 -
如果第一个条件为 false,那么就会判断第二个条件,依次类推
-
只会有一个被执行,一旦有一个条件为 true 了,后面的就不在判断了
// 第一个条件为 true,第二个条件为 false,最终会打印 “我是代码段1”
if (true) {
alert('我是代码段1')
} else if (false) {
alert('我是代码段2')
}
// 第一个条件为 true,第二个条件为 true,最终会打印 “我是代码段1”
// 因为只要前面有一个条件满足了,就不会继续判断了
if (true) {
alert('我是代码段1')
} else if (true) {
alert('我是代码段2')
}
// 第一个条件为 false,第二个条件为 true,最终会打印 “我是代码段2”
// 只有前一个条件为 false 的时候才会继续向后判断
if (false) {
alert('我是代码段1')
} else if (true) {
alert('我是代码段2')
}
// 第一个条件为 false,第二个条件为 false,最终什么也不会发生
// 因为当所有条件都为 false 的时候,两个 {} 里面的代码都不会执行
if (false) {
alert('我是代码段1')
} else if (false) {
alert('我是代码段2')
}
if else if … else 语句
- 和
if else if ...
基本一致,只不过是在所有条件都不满足的时候,执行最后 else 后面的{}
// 第一个条件为 false,第二个条件为 false,最终会打印 “我是代码段3”
// 只有前面所有的条件都不满足的时候会执行 else 后面的 {} 里面的代码
// 只要前面有一个条件满足了,那么后面的就都不会执行了
if (false) {
alert('我是代码段1')
} else if (false) {
alert('我是代码段2')
} else {
alert('我是代码段3')
}
例子🌰: 输入一个数字,判断数字是否是水仙花数( 数字的个位的3次方+数字的十位的3次方 +百位的3次方 == 该数字本身 )
var a = 153; //输入的数值
var ge = a % 10; //输入数值的个位数
var shi = parseInt(a / 10) % 10; //输入数值的十位数
var bai = parseInt(a / 100) % 10; //输入数值的百位数
var sxh = ge*ge*ge + (shi*shi*shi) + (bai*bai*bai); //sxh表示水仙花数
if(a==sxh){
console.log(a+"是水仙花数")
}else{
console.log(a+"不是水仙花数")
}
SWITCH 条件分支结构
-
是对于某一个变量的判断(注意事项:绝对不要写范围,必须写常量)
-
要判断某一个变量 等于 某一个值得时候使用
-
switch结束条件:
1.直接执行完所有case语句
2.遇到break则直接跳出case语句
switch (要判断的变量) {
case 情况1:
情况1要执行的代码
break
case 情况2:
情况2要执行的代码
break
case 情况3:
情况3要执行的代码
break
default:
上述情况都不满足的时候执行的代码
}
例子🌰: 根据变量给出的数字显示是星期几
var week = 1 //输入数字1-7,执行case;
switch (week) {
case 1:
alert('星期一')
break
case 2:
alert('星期二')
break
case 3:
alert('星期三')
break
case 4:
alert('星期四')
break
case 5:
alert('星期五')
break
case 6:
alert('星期六')
break
case 7:
alert('星期日')
break
default:
alert('请输入一个 1 ~ 7 之间的数字')
}
条件运算符
语法结构
条件表达式?语句1:语句2;
- 如果条件表达式返回true,就执行语句1
- 如果条件表达式返回false,就执行语句2
例子🌰:
var a = 50;
var b = 20;
var c= a > b ? alert("a大"):alert("b大"); //c是a,b中的最大值
console.log(c)
var a = 10;
var b = 20;
//获取a,b的最大值
var max =a > b ? a : b;
console.log("max = "+max); //max = 50
循环语句
- while循环语句
- 语法结构:
初始化变量
while(条件表达式){
语句1;
自增自减表达式;
}
- 语法结构:
例子🌰:篮球从5米高的地方掉下来,每次弹起的高度是原来的30%,经过几次弹起,篮球的高度小于0.1米。
var height = 5;
var h,count = 0;
while(h>0.1){
h*=0.3;
count++;
}
console.log(count) // 4次
例子🌰:山上有口缸可以装50升水,现有15升,小和尚下山挑水,每次挑5升,几次把缸挑满
var count = 0; //次数
var w = 50-15; //需要打多少水
var i = 0; //打了多少水
while(i<w){
i+=5;
count++;
}console.log(count) //7
- do…while循环语句
- 语法结构:
do{
循环体
} while(条件表达式)
- 语法结构:
先执行一次在判断条件
例子🌰:求1-10的和
var sum = 0;
var i = 1;
do{
sum+=i;
i++;
}while(i<=10)
console.log(sum);
while和do…while的区别
- 当首次条件成立时,两者无区别
- 当首次条件不成立时,do…while要执行一次循环体
- for循环语句
- 语法结构:
for(初始化变量;条件表达式;自加自减表达式){
循环体;
}
- 语法结构:
例子🌰:求1-100的偶数的和
var sum = 0;
for(var i = 1;i<=100;i++){
if(i%2==0){
sum += i;
}
}
console.log(sum) //2550
例子🌰:求1000-2000年之间的闰年,并以每行5个打印出来
var count = 0;
for (var i = 1000; i <= 2000; i++) { //范围
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) { //判断闰年
document.write(i + " ");
count++; //每一行的个数
if (count % 5 == 0) { //有五个就输出换行
document.write("<br>")
}
}
}
for循环和while循环使用的场景
- 知道循环次数用for
- 不知道循环次数用while