JavaScript–(03)-循环、break与continue关键字、debugger调试
1、while循环
while(表达式){
语句
}
//表达式==true/false;当表达式为true时花括号中的代码会反复运行,直到表达式为false时退出。
//案例1:输出0-99的数
var i = 0;
while(i < 100){
//反复执行
//语句(循环体)
console.log(i);
i++;//增量(步长)
}
//案例2.循环输出1-100的奇数
var i = 0;
while(i < 100){
i++;
//奇数时输出
//使用if控制在奇数时输出
if(i % 2 === 1){
document.write(i + " ");
}
if(i % 2 != 0){
document.write(i + " ");
}
}
2、dowhile循环
do{
语句
}while(表达式);
程序一开始会执行do里面的语句,之后再到while里面进行判断,如果结果为true,再执行do里面的语句,直到表达式的结果为false后跳出循环。
输出0-9的数:
var i = 0;
do{
console.log(i);
i++;
}while(i > 10);
注:while和do while的区别
while循环,先判断后执行,循环体有可能一次都不执行。
do while先执行,后判断,循环体至少会执行一次。
3、break关键字
break能跳出当前循环(在switch中解决穿透问题)
break 关键字的应用(部分代码)
// 1. 输出1--10 遇到5的倍数后就不能输出了
var i = 1;
while(i <= 10){
if(i % 5 === 0){
break;
}
console.log(i);
i++;
}
// 2.一个加油站为了鼓励车主多加油,所以加的多有优惠。(嵌套)
// 92 号汽油,每升 6 元;如果大于等于 20升,那么每升 5.9 ;
// 97 号汽油,每升 7 元;如果大于等于 30升,那么每升 6.95
// 输入一个油号,如果不是92或97,提示“没有符合的型号,请重新输入”
// 输入正确后,再输入多少升,计算后输出需要支付的金额。
// 编写 JS 程序,用户输入自己的汽油编号,然后输入自己加多少升,弹出价格。
//输入一个油号,92或97,如果没有对,重新输出。
var oilNum = 0;
while(true){//输入错误,反复去判断
oilNum = parseInt(prompt("输入油号"));
if(oilNum === 92 || oilNum === 97){
//输入正确 退出循环
break;
}else{
//输入错误,就要重新输入
alert("没有这个油号,请重新输入");
}
}
//console.log(oilNum);//当程序能走到这里,说明用户已经选择好了油
var l = Number(prompt("输入升数"));
var price = 0;//用于保存总价格
//输入一所买的升数(前提是输对了油号),
switch(oilNum){
case 92:
//计算
//92 号汽油,每升 6 元;如果大于等于 20升,那么每升 5.9 ;
if(l > 20){
price = 5.9 * l;
}else{
price = 6 * l;
}
break;
case 97:
//计算
//97 号汽油,每升 7 元;如果大于等于 30升,那么每升 6.95
if(l > 30){
price = 6.95 * l;
}else{
price = 7 * l;
}
break;
}
console.log("你买了" + l + "升" + oilNum + "号汽油,需要支付" + price + "元");
4、for循环
for (var i = 0; i < Things.length; i++) {
Things[i]
}
声明、判断条件(表达式)、自增自减(步长)都在for的小括号里,如果不在这个里边写此内容,也必须放两个分号
// 案例1. 入职薪水10K,每年涨幅5%,50年后工资多少?
var s = 10000;
//1 10000
//2 10000 + 10000 * 0.05 10000*1.05
//3 10000 + 10000 * 0.05 + (10000 + 10000 * 0.05) * 0.05
//10000*1.05 + 10000*1.05*0.05
//10000
//10000*1.05
//10000*1.05*1.05
//10000*1.05*1.05*1.05
for (var i = 2; i <= 50; i++) {
//循环了49次
//s = s*1.05;
s *= 1.05;
}
console.log(s);
// 案例2. 打印100以内 7的倍数
for (var i = 1; i <= 100; i++) {
if(i % 7 === 0){
console.log(i);
}
}
// 案例3. 打印100以内的奇数
for (var i = 1; i <= 100; i++) {
if(i % 2 === 1){
console.log(i);
}
}
5、continue关键字
for (var i = 0; i < 10; i++) {
//当i === 5的时候跳过本次循环,进入下一次循环。
if(i === 5){
continue;//跳过本次循环,进入下一次循环
}
console.log(i);
}
6、debugger调试
//浏览器的debugger工具
//1,在浏览器的debugger工具打断点(控制台的source)
//2,在程序内部使用debugger关键字
var a = 9;
debugger;//程序调试完毕后一定要把debugger删除。
var b = 10;
console.log(a + b);
for (var i = 0; i < 10; i++) {
document.write(i + " ");
}