第二章.循环语句
一、if单分支语句循环
1.语法结构:
if(条件表达式){
// 执行语句
}
2. 执行思路:条件表达式里面的结果为真(true)就执行花括号里面的语句,如果条件表达式为 假(false)不执行花括号里面的语句
案列:
// 弹出prompt 输入框,用户输入年龄,程序把这 个值取过来保存到变量中 使用if语句来判断年龄,如果年龄大于18就执行if大括号里面的输 出语句
var age=prompt("请输入你的年龄:");
if(age>=18){
alert("这是我写的js");
}
流程图:
二、if-else双分支语句
// 1.语法结构 if如果 else否则
if (条件表达式) {
// 执行语句1
} else {
// 执行语句2
}
// 2.执行思路 如果表达式结果为真 那么执行语句1 否则执行语句2
案列:
var age = prompt('请输入你的年龄:');
if (age >= 18) {
alert('我想带你去看人间烟火');
} else {
alert('但是需要我们一起去完成');
}
// 4.总结:if里面的语句1 和else里面的语句2最终只能有一个语句被执行 2选一
// 5.else后面跟大括号
流程图:

三、if-else-if多分支语句循环
// 1.多分支语句 就是利用多个条件来选择不同的语句执行得到不同的结果 多选1的过程
// 2. if else if语句是多分支语句 I
// 3.语法规范
if(条件表达式1){
// 语句1
} else if(条件表达式2){
//语句2
}else if(条件表达式3){
//语句3
}else{
// 最后的语句
}
// 4.执行思路
// 如果里面条件表达式1 满足就执行 语句1执行完毕后,退出整个if分支语句
// 如果条件表达式1不满足,则判断条件表达式2 满足的话就执行语句2 以此类推
// 5.注意点
// (1)多分支语句还是多选一 最后只能有一个女语句执行
// (2)else if里面的条件理论上是可以任意多个的
// (3)else if中间有一个空格
案列:
var score=prompt('请输入你的分数');
if(score>90){
alert('你真厉害');
}else if(score>=80){
alert('很厉害');
}else if(score>=60){
alert('加油');
}else{
alert('你要加油哦');
}
流程图:
四、for循环语句
//1. for 重复执行某些代码,通常跟计数有关
// 2.语法:
for(初始变量条件;循环条件表达式;操作表达式){
// 循环体
}
3.初始化变量: 就是用var声明的一个普通变量,通常用作为计数器使用
4.条件表达式:就是用来决定每一次循环是否被执行,就是终止的条件
5.操作表达式:是每次循环最后执行的代码经常用于我们计数器变量进行更新(递增或者递减)
// 案列1:
//打印100份数卷
/* for(var i=1;i<=100;i++){
console.log('打印'+i+'份试卷');
} */
// 运行顺序
// 1.首先执行里面的计数器变量 var i=1 但是这句话在for里面只执行一次/
// 2.去i<=100 来判断是否满足条件,如果满足条件,就去执行循环体,如果不满足条件就推出循环体
// 3.最后去执行i++ i++是单独写的代码 递增 第一轮结束
// 4.接着去执行 i<=100 如果满足条件,就去执行循环体,不满足就退出循环体 第二轮结束
// 案列2:
//我们可以让用户控制输入的次数
var num=prompt('请你输入次数');
for(var i = 1; i <num;i++){
console.log('你好先生');
}
//案列3:
//for 循环可以重复执行不同的代码 因为我们有计数器变量 i 的存在每次循环都会变化
//1.想要输出1个人 1-100岁
for (var i = 1; i <= 100; i++) {
console.log('这个人今年' + i + '岁了');
}
//案列4:
for (var i = 1; i <= 100; i++) {
if (i == 1) {
console.log('这个人已经1岁了,他出生了');
} else if (i == 100) {
console.log('这个人已近100岁了,他死了');
} else {
console.log('这个人今年' + i + '岁了');
}
}
//案列5:
//求1-100之间的整数累加和
var sum = 0;
for (var i = 1; i <= 100; i++) {
sum += i;
}
console.log(sum);
// 案列6:
// 求1-100之间所有数的平均值 分析思路:需要一个sum和变量 还需要一个average平局数变量
var sum = 0;
var average = 0;
for (var i = 1; i <= 100; i++) {
sum = sum + i //sum+=i;
}
average = sum / 100;
console.log(average)
//案列:7:
//案列8:
// 求1-100之间所有偶数和奇数的和
var even = 0;
var odd = 0;
for (var i = 1; i <= 100; i++) {
if (i % 2 == 0) {
even = even + i;
} else {
odd = odd + i;
}
}
console.log('1-100之间所有偶数和' + even);
console.log('1-100之间所有奇数和' + odd);
//案列8:
// 求1-100之间所有能被3整除的数字的和
var integer=0;
for (var i = 1; i <= 100; i++) {
if (i % 3 == 0) {
integer=integer+i; //integer+=i;
}
}
console.log('1-100之间所有能被三整除的数字'+integer);
//案列9:
/*求弹出输入框输入总的班级人数(num)
依次输入学生的成绩(保存起来score),此时我们需要用到
for循环, 弹出的次数跟班级总人数有关系条件表达式i <= num
进行业务处理:计算成绩。 先求总成绩( sum) ,之后求平均成绩( average)
弹出结果 */
var num=prompt("请输入班级总人数");
var sum=0;//定义和的变量
var average=0;//定义平均数的变量
for(var i=1;i<=num;i++){
var score=prompt("请输入第"+i+"个学生的成绩");
sum=sum+parseFloat(score);
}
average=sum/num;
alert("班级的总成绩是:"+sum);
alert("班级的平均分是:"+average);
流程图:
五、双重for循环
//1. for 重复执行某些代码,通常跟计数有关
// 外层循环执行一遍,内层循环全部执行一次
// 外层循环表示行数,内层循环表示列数
// 2.语法结构
for(初始变量条件1;循环条件表达式1;操作表达式1){
// 循环体1
for(初始变量条件2;循环条件表达式2;操作表达式2){
// 循环体2
}
}
//案列1:
// 地球公转自转
for(var year=2000;year<=2022;year++){
console.log("当前的年份:"+year)
for(var day=1;day<=365;day++){
console.log(year+"年,地球自转了"+day+"圈,有过了一天....");
}
console.log("地球公转了1圈......");
}
//案列2:
// 乘法表
// i表示的是行数,j表示的是咧数
for (var i = 1; i <= 9; i++) {
for (var j = 1; j <= i; j++) {
document.write(j + "*" + i + "=" + i * j + " ");
}
document.write("<br/>");
}
//案列3:
// 打印矩形
for( var i=1;i<=5;i++){
for(var j=1;j<=5;j++){
document.write("@");
}
document.write("<br/>")
}
//案列4:
// 打印平行四边形
// 外层循环执行一遍,内层循环全部执行一次
// 外层循环表示行数,内层循环表示列数
for (var i = 1; i <=5; i++) {
for (var j = 5 - i; j >= 1; j--) {
document.write(" ");
}
// 打印右边星号
for (var k = 0; k < 5; k++) {
document.write("*");
}
document.write("<br/>");
}
//案列5:
// 打印三角形
for (var i = 1; i <= 8; i++) {
for (var j = 8 - i; j >= 1; j--) {
document.write("@");
}
for (var k = 0; k < 3 * i - 1; k++) {
document.write(i);
}
document.write("<br/>");
}
流程图:
六、while循环语句
//1. while循环语法结构 while 当...的时候
while(条件表达式){
//循环体
}
// 2.执行思路 当条件表达式为true 则执行循环体 否则退出
// 3.里面有计数器 初始化变量
// 4.里面应该也有操作数表达式 完成计数器的更新 防止死循环
var num=1;
while (num <=100){
console.log('你好');
num++;
}
// 弹出一个提示框, 你爱我吗? 如果输入我爱你,就提示结束,否则,一直询问.
var message=prompt("你爱我吗");
while(message!=='我爱你'){
message=prompt("你爱我吗");
}
alert('我也爱你!');
流程图:

七、do-while循环语句
// 1.do while 循环 语法结构
do{
// 循环体
}while(条件表达式)
//2.执行思路 跟while不同的地方在于 do while 先执行一次循环体
在判断条件表达式 如果条件表达式为真继续执行循环体 否则退出循环
// 3.do while 至少执行一次循环体
//案列1:
// 打印100句how are you
// 定义计数器
var i=1;
do{
console.log("how are you");
i++;
}while(i<=100);
//案列2:
// 印人的一生,从1岁到100岁
// 定义计数器
var i=1;
do{
console.log("这个人几年"+i+"岁了");
i++;
}while(i<=100);
//案列3:
// 算1-100之间的所有整数的和
var sum=0;
var i=1;
do {
sum += i;
i++;
}while(i<=100);
console.log(sum);
// 案列4:
// 弹出一个提示框,你爱我吗 如果输进入我爱你,就提示结束,否则一直询问
do{
var message=prompt("你爱我?");
}while(message!=="我爱你");
alert("我也爱你");
流程图:

八、continue循环语句
//1.continue遇到continue表示跳过本次循环,(continue后面的语句)继续执行下一次循环
//案列1:
// 打印5份试卷
// continue 跳出本次循环,继续下一次循环
for (var i = 1; i <= 5; i++) {
if (i == 3) {
continue;//只要遇见continue就退出本次循环 直接跳到i++
}
console.log('我正在打印' + i + '几份试卷');
}
// 案列2:
// 求1-100之间,除了能被7整除之外的整数和
var sum = 0;
for (var i = 1; i <= 100; i++) {
if (i % 7 == 0) {
continue;
}
sum += i;
}
console.log(sum);
// 案列3:
for (var i = 1; i < 10; i++) {
console.log('第${i}次');
if (i === 8) {
continue;
}
console.log('第几次');
} */
// 案列4:
var count = 0;
var rate=0;
var n = 0;
for (var i = 1; i <= n; i++) {
var score = parseInt(prompt("请输第" + i + "门成绩"));
if (score >= 80) {
continue;
}
count++;
}
rate = count / n* 100 + "%";
console.log(count, rate);
// 案列5:
var sum = 0;
for (var i = 1; i <= 10; i++) {
if (i % 2 == 0) {
sum += i;
continue;
}
}
console.log(sum);
九、break循环语句
// 1.break 退出整个循环条件
// 2. break;只能在switch语句块里面,或者在循环体里面
// 3.break;退出循环体,执行循环后面的代码
// 案列1:
for(var i=1;i<=5;i++){
if(i==3){
break;//退出整个循环条件
}
console.log('我正在打印第'+i+'份试卷');
}
//案列2:
for (var i = 1; i <= 10; i++) {
console.log("跑了第" + i + "圈");
if (i === 8) {
console.log("不想跑了");
break;
}
}
console.log("后续操作....");
// 案列3:
var sum = 0;
var avg = 0;
for (var i = 1; i <= 5; i++) {
var score = parseInt(prompt("请输第" + i + "门成绩"));
if (i < 0) {
console.log("分数录入错误");
break;
}
sun += i;
}
if (i > 0) {
avg = sum / 5;
console.log(avg, sum);
}
var sum=0;
for(var i=1;i<=10;i++){
sum+=i;
if(sum>20){
console.log("1-10和大于20的数:"+i);
break;
}
}
十、Switch循环语句
// 语法:
switch(表达式){
case 值1:
语句体;
break;
case 值2:
语句体;
break;
……
default:
语句体n+1;
break;
}
执行思路:
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会束
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

浙公网安备 33010602011771号