条件语句是在不同的条件下来执行不同的操作
1.if语句:只有规定的条件为真时,才会执行里面的代码
格式:if(条件)
{条件成立执行的代码块}
<script>
var a = 19
if (a < 20) {
console.log("a比19要小")//a比19要小
}
</script>
2.if.....else语句:当满足条件时执行if中的代码块,否则执行else中的代码块
格式:if(条件)
{代码块1}
else{代码块2}
<script>
var a=20
if (a >= 18) {
console.log("成年了")//成年了
}
else {
console.log("未成年")
}
</script>
3.for循环:for循环就是机械的执行相同的代码,但每次的结果都不同,可以控制for的循环次数。
格式:for(A;B;C){
E} A:指初始条件 B:循环的条件 C:迭代操作 E:循环体
运行的顺序:1A--2B--3E--4C--2B-3E-4C-.....
<script>
for (var i = 0; i < 4; i = i + 1) {
console.log(i)//0,1,2,3
}
</script>
(1)双for循环:for里面还有一个for循环
练习01:如九九乘法表:
<script>
for (var n = 1; n <= 9; n++) {
for (var i = 1; i <= 9; i++) {
var re = `${i}*${n}=${i * n}`
console.log(re) //for里面又又for循环:当n=1时里面的for循环9次,n=2时里面的i又循环九次...
}
</script>
练习题02:一个兔子5文钱,一只鸡3文钱,必须买够100个腿并且活的,130文钱,可以买多少只兔子,多少只鸡(答案:有10种方案)
<script>
for(var j=0;j<=26;j++){
for(var t=0;t<=32;t++){
if(2*j + 4*t >= 100 && 5*t + 3*j <= 130){
console.log(`兔的数量为${t}只,鸡的数量为${j}只`)
}
}
}
</script>
4.switch语句:在不同的条件下进行不同的操作,当一个类型有多个分支选项时,可以使用switch语句
格式:switch(n){
case 1:代码块1
break;
case 2:代码块2
break;
......
default:代码块}
其中:n表示一个变量或是表达式,它会与case后面的值比较,匹配相同则执行相应的代码块,break的作用就是执行完该代码块后就退出循环。没用break的话就会继续下一个循环,直到遇到break或者执行完所有代码为止。代码块中还可以包含代码块。default是n与所有的case后面的值都不匹配,才来执行这一代码块。
例:用3去匹配case后面的值,匹配到可以执行代码块,若将3改为5,则会执行default的代码块,结果如下兔
<script>
switch(3){
case 1:
console.log('这是符合条件1')
break;
case 2:
console.log('这是符合条件2')
break;
case 3:
console.log('这是符合条件3')//这是符合条件3
break;
default:
console.log('没有符合的!!!')}
</script>
5.while循环语句:在指定的条件为真时执行代码块,它的循环次数不清楚,而for是知道初始条件和终止条件了的。
格式:while (条件)
{
需要执行的代码
}
例:
<script>
var i = 10
while (i >= 0) {
console.log("使用一次业务")//打印了11次使用一次业务
i--
}
</script>
6.break、continue以及return语句:break:用于跳出循环,continue:用于跳出该层循环,继续下一次循环。return:跳出整个循环,不执行了。
(1)break
例:break:定义i=0,i<5,j初始值为0,j<5若j为3则退出循环
<script>
for (var i = 0; i < 5; i++) {
for (var j = 0; j < 5; j++) {
if (j == 3) { break }
else { console.log(j) }//结果打印了五遍012
}
}
</script>
这是因为i可以取0、1、2、3、4,当j取0、1、2时j=3不成立,但当j==3时,遇到break则跳出循环,不再执行j的for循环了,返回到i的循环执行i+1的操作,然后再进入到j的循环。
若在j中再加一个break:这是因为i取到3时,退出循环,j取到3后退出循环,分别循环三次
<script>
for (var i = 0; i < 5; i++) {
if (i == 3) { break }
for (var j = 0; j < 5; j++) {
if (j == 3) { break }
else { console.log(j) }//三遍0、1、2
}
}
</script>
(2)continue:结束本次循环,继续下一次循环
例:当i==0,且i小于5,当i=3时执行continue语句,输出结果???
<script>
for (var i = 0; i < 5; i++) {
if (i == 3) { continue }
console.log(i)//0、1、2、4
}
</script>
这是因为,当i为3时执行continue语句,而它的功能是退出本次循环(不执行i==3这次),继续下一次循环(i==4)
(3)return:指定函数调用后返回的值,通常于函数相结合使用,执行return语句后,后面的代码不会再运行,退出整个循环
7.抛出异常:马上停止正在执行的语句,若有错误,执行相应的语句
错误信息有两种:代码错误(浏览器会自动抛出)和业务错误(主动调用throw语法抛出)
若没有错误执行代码块1,有错执行代码块2,代码块3是无论发送错误与否都会执行
格式:
throw{
代码块1
}
例:
<script>
var age = 17
if (age >= 22) {
console.log("可以结婚")
} else {
throw new Error("66666")
}
</script>
8.捕获错误机制:用于处理异常的代码
格式:try{
//我们自认为没有错误的 处理业务的代码
}
catch(e){
//上面的业务处理代码报错了,这里才会执行
//console.log(e);
}
finally{
//这里总是会执行的,领导总结发言
}
例:
<script>
try {
console.log(c) //整个程序中没有c,有误,所以执行catch中的语句
}
catch (error) {
console.log(22)//22,前面的代码有错,执行该语句
}
finally {
console.log(6666)//6666,无论有错没错都会执行
}
</script>