1.for循环
- 循环:重复做一件事。
- 特点:给定一个条件,条件成立时,重复执行某段代码,直到条件不成立。
- 循环成立的条件:
- 初始值,作为循环的开始。
- 条件判断,决定要不要继续执行循环。
- 执行重复的代码。
- .改变初始值,为了让循环有结束。
- 语法结构:
- for (var i = 0; i < 要执行的次数; i++) {
要重复执行的代码
};
- 执行顺序:
- 变量的声明 var i = 初始值(一般情况是0);
- 执行条件的判断 i < 要执行的次数
- 条件成立,则执行{}中的代码。执行完成后,再执行 i++;
- 条件不成立,循环直接结束。
例:
for (var i = 0; i < 5; i++) {
document.write("<p>我错了,我也不知道我哪错了</p>");
};
2.while循环
- 语法:
- while(条件判断){
要执行的语句。
…
};
- 【注意】
- while()可以书写任意的表达式,表达式的结果都会自动转布尔值。
- 不能让循环条件一直成立,会造成死循环。
例:
//1.需要有一个初始值,作为循环的开始。
var i = 1;
//2.条件判断,成立则执行循环。
while (i < 6) {
//3.要重复执行的代码
document.write("<p>我错了,我也不知道我哪错了</p>" + i);
//4.改变初始值
i++;
}
3.do…while循环
- 语法:
- do {
重复执行的代码;
} while(条件判断);
例:
var sum = 0;
var i = 1;
do {
sum += i;
i++;
} while (i <= 100);
console.log(sum); //5050
4.while与do…while 的区别
- 执行顺序上:
- while先判断,条件成立后再执行循环体内的代码。
- do…while是执行循环体内的代码,再去判断。
例:
var sum = 0;
var i = 11;
do {
sum += i;
console.log("我执行了"); //我执行了
i++;
} while (i <= 10);
var sum = 0;
var i = 11;
while (i <= 10) {
sum += i;
console.log("我执行了"); //不符合条件,不会被输出
i++;
}
console.log(sum); //0
5.break
- break:
- 在switch语句中,跳出选择流程。
- 在循环语句中使用,跳出当前循环。
- break:
- 如果执行break,则循环语句中后面的代码都不会执行,并且整个循环都会结束。
- continue:
- 只能在循环中使用,让本次循环结束,循环语句中后面的代码本次就不会执行了。接着执行下次循环。
例:
var i = 1;
while (i <= 10) {
document.write("这是i的第" + i + "次执行!");
var j = 1;
while (j <= 10) {
if (j == 2) {
break;
}
document.write("这是j的第" + j + "次执行!");
j++;
}
document.write("<br>")
i++;
}
document.write("循环结束了");
案例练习
- 求1~100的累加和。
var sum = 0;
var i = 0;
while(i<=100){
sum += i;
i++;
}
console.log(sum); //5050
- 100以内的7的倍数。
var i = 1;
while (i <= 100) {
if (i % 7 == 0) {
document.write(i);
document.write("<br>"); //7、14、21、28、35、42、49、56、63、70、77、84、91、98
}
i++;
}
- 打印100以内的所有偶数的和。
var sum = 0;
for(var i=1;i<=100;i++){
if (i%2==0) {
sum += i;
}
}
console.log(sum); //2550
- 用*打印一个直角三角形。
for (var i = 20; i >= 1; i--) {
// document.write("这是第"+i+"行,这里应该有"+i+"个*");
for (var j = 1; j <= i; j++) {
document.write("* ")
}
document.write("<br>")
};
- 入职薪资月薪2000元,每年涨上一年的10%,20年后的的月薪是多少?
var salay = 2000;
for (var i = 0; i < 20; i++) {
salay *= 1.1;
}
console.log(parseInt(salay)); //13454
- 打印100-200之间所有能被3或者7整除的数。
for(var i = 100;i<=200;i++){
if (i%3==0||i%7==0) {
console.log(i); //102、105、108、111、112、114、117、119、120、123、126、129、132、133、135、138、140、141、144、147、150、153、154、156、159、161、162、165、168、171、174、175、177、180、182、183、186、189、192、195、196、198
};
};
- 计算10的阶乘(10!=1098765432*1)
var sum = 1;
for (var i = 10; i >= 1; i--) {
sum *= i;
}
console.log(sum); //3628800
- 打印100以内的质数,判断一个数是不是质数(自然数中,除了1或本身,不能被其他数整除。)
var n = 15;
for (var n = 2; n <= 100; n++) {
for (var i = 2; i < n; i++) {
if (n % i == 0) {
break;
};
};
//最里面的for循环结束后,如果n是一个质数,则i与n应该相等。
if (n == i) {
document.write(n + "是一个质数。")
document.write("<br>")
};
};
- 打印100以内的质数,判断一个数是不是质数(自然数中,除了1或本身,不能被其他数整除。)
var n = 15;
for (var n = 3; n <= 100; n++) {
// 做一个标记,flag = false表示该数不是质数。 true表示是一个质数。
var flag = true;
for (var i = 2; i < n; i++) {
if (n % i == 0) {
//说明这个数不是质数。
flag = false;
break;
};
};
if (flag) {
document.write(n + "是一个质数。");
document.write("<br>");
};
};
Day3