一.程序的执行顺序
- 在程序开发中,程序有三种不同的执行方式:
- 顺序 —— 从上向下,顺序执行代码
- 分支 —— 根据条件判断,决定执行代码的 分支
- 循环 —— 让 特定代码 重复 执行
- 代码块是多行执行代码的集合,通过一个{}放到了一起
- 在开发中,一行代码很难完成某一个特定的功能,我们就会将这些代码放到一个代码块中
二.分支语句
2.1 if分支
if分支结构有三种:
- 单分支结构
- if..
- 多分支结构
- if..else..
- if..else if..else..
2.1.1 单分支if
- 案例一:如果小明考试超过90分, 就去游乐场“如果”相当于JavaScript中的关键字if分数超过90分是一个条件(可以使用 > 符号)
- 案例二:单位5元/斤的苹果,如果购买超过5斤,那么立减8元注意:这里我们让用户输入购买的重量,计算出最后的价格并且弹出结果
2.1.2 多分支if…else
- 多分支语句一: if.. else..
- 案例一:如果分数超过90分去游乐场,否则去上补习班
- 满足条件时,做某些事情
- 不满足(else),去做另外一些事情
- 案例二:m=20,n=30,比较两个数字的大小,获取较大的那个数字
2.1.3 多分支if…elseif…else
- 案例一:陪女朋友过节日
- 定义 holidayName 字符串变量记录节日名称
- 如果是 情人节 应该 买玫瑰/看电影
- 如果是 平安夜 应该 买苹果/吃大餐
- 如果是 生日会 应该 买蛋糕 / 开Party
- 其他的日子, 上班工作
- 案例二: 分数评级:
- 考试分数大于90:优秀
- 大于80小于等于90:良好
- 大于60小于等于80:合格
- 小于60分:不及格
2.1.4 隐式Boolean类型转化
- 在开发中,流程控制语句会把括号中的表达式的值隐式转换成布尔类型。
- 注意五种特例:0,”,NaN,undefined,null,转换成布尔类型的结果都是false。
2.2 switch分支
- switch是分支结构的一种语句:
- 它是通过判断表达式的结果是否等于case语句的常量,来执行相应的分支体的
- 与if语句不同的是,switch语句只能做值的相等判断(使用全等运算符 ===),而if语句可以做值的范围判断
- case穿透问题:
- 一条case语句结束后,会自动执行下一个case的语句
- 这种现象被称之为case穿透
- break关键字
- 通过在每个case的代码块后添加break关键字来解决这个问题
- 案例:陪女朋友过生日的案例(通过switch实现)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>条件语句</title>
<script type="text/javascript">
/*
条件语句:
1.if语句:省略
2.switch...case语句
*/
/*
练习:输出成绩大于60分合格,低于60分不合格
*/
var score=parseInt(64/10);
switch(score){
case 10:
case 9:
case 8:
case 7:
case 6:
document.write("合格");
break;
case 5:
case 4:
case 3:
case 2:
default:
document.write("不合格");
break;
}
//console.log(score);
var score1=54;
switch(true){
//case parseInt(score1/10)>=6:
case score1>=60:
document.write("合格");
break;
default:
document.write("不合格");
break;
}
</script>
</head>
<body>
</body>
</html>
复制代码
三.循环语句
- 为什么需要循环?
- 循环可以减少书写某些重复代码.(重复的代码会造成代码的混乱和工作量的增加)
- 例如: 打印100次HelloWorld/打印从0 ~ 99的数字/计算1~100的和
- 如果按照我们之前的方式, 一个个打印, 非常麻烦. 但是使用循环可以很容易的做到
- 这也正是最能发挥计算机作用的地方, 让计算机帮助我们做重复的枯燥工作
- 在JavaScript中,常用的循环语句:
- while循环
- do..while循环
- for循环
3.1 while循环
-
语法:
-
初始化语句; while(条件表达式){ 语句; 更新表达式; } 复制代码
-
-
和if一样while中的条件表达式将会被转换为布尔类型,只要该值为真,则代码块将会一直重复执行。
-
代码块每执行一次,条件表达式将会重新计算。
-
条件表达式为true的while循环为死循环,可以使用break来终止
3.2 do…while循环
-
语法:
-
do{ 执行语句 }while(条件表达式); 复制代码
-
-
do…while和while非常类似,只不过它会在循环的尾部而不是顶部检查表达式的值。
-
==do…while循环会至少执行一次。==
-
while和do···while区别:while先判断,再执行;而do…while是先执行,再判断
3.3 for循环
-
for语句也是循环控制语句,我们也称它为for循环。
-
大部分循环都会有一个计数器用以控制循环执行的次数,计数器的三个关键操作是初始化、检测和更新。for语句
就将这三步操作明确为了语法的一部分。 -
语法:
-
for(初始化表达式 ; 条件表达式 ; 更新表达式){ 语句... } 复制代码
-
-
for循环是开发中使用最多的循环语句:
- 语句一:初始化表达式:通常会写var i=1
- 语句二:条件表达式,用于判断进行条件判断
- 语句三:自增、减表达式,比如i++或i–
3.3.1 循环练习
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>循环语句</title>
<script type="text/javascript">
/*
练习:年利率为5%,从1000块到5000块要几年?
*/
var money=1000;
/* var num=0;
while(true){
money+=0.05*money;
num++;
if(money>=5000){
break;
}
}
console.log(num);//33*/
var year=0;
do{
money+=0.05*money;
year++;
if(money>=5000){
break;
}
}while(true);
console.log(year);//33
</script>
</head>
<body>
</body>
</html>
复制代码
3.3.2 for循环的变种写法
var j = 1;
for (; j < 11;) {
document.write(j + ' ');
j++;
}
document.write("<hr/>");
var j = 1;
var count = 0;
for (; j;) {
//document.write(j+' ');
if (count == 10) {
document.write('count=' + count);
break;
}
document.write(j + ' ');
count++;
j++;
}
document.write("<hr/>");
var j = 1;
var count = 0;
for (; j;) {
document.write("a" + ' ');
count++;
if (count == 10) {
j = 0;
}
}
复制代码
3.3.3 多重for循环练习
/*双层for循环*/
//九九乘法表
for (var i = 1; i < 10; i++) { //控制行数
for (var j = 1; j <= i; j++) { //控制列数
document.write(i + '*' + j + '=' + i * j + ' ');
}
document.write("<br/>");
}
document.write("<hr/>");
//打出菱形
for (var i = 1; i <= 4; i++) { //控制输出行数
for (var k = 1; k <= 4 - i; k++) { //此处循环用来控制前面的空白;
document.write(" ");
}
for (var j = 1; j <= 2 * i - 1; j++) { //控制列数
document.write("@");
}
document.write("<br/>"); //换行
}
for (var i = 3; i >= 1; i--) {
for (var k = 1; k <= 4 - i; k++) {
document.write(" ");
}
for (var j = 1; j <= 2 * i - 1; j++) {
document.write("@");
}
document.write("<br/>");
}
document.write("<hr/>");
复制代码
五. break和continue关键字
-
循环的跳转
- 在执行循环过程中, 遇到某一个条件时, 我们可能想要做一些事情
- 比如循环体不再执行(即使没有执行完), 跳出循环
- 比如本次循环体不再执行, 执行下一次的循环体
-
循环的跳转控制
- break: 直接跳出循环, 循环结束
- break 某一条件满足时,退出循环,不再执行后续重复的代码
- continue: 跳过本次循环次, 执行下一次循环体
- continue 某一条件满足时,不执行后续重复的代码
- break: 直接跳出循环, 循环结束
-
break 和 continue 语句用于在循环中精确地控制代码的执行。
-
使用break语句会使程序立刻退出最近的循环,强制执行循环后边的语句。
-
break语句只在循环和switch语句中使用。
-
使用continue语句会使程序跳过当次循环,继续执行下一次循环,并不会结束整个循环。
-
continue只能在循环中使用,不能出现在其他的结构中。
六.断点调试
- 在开发中,为了获取一个变量的值,我们可以通过打印到控制台
- 但是,查看一个变量的变化,我们可以通过断点调试
- 断点调试也被称为debug
- 开启断点调试常见的有两种方式:
- 方式一:找到自己的源代码,在其中打断点
- 方式二:在代码中写上debugger
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END