知识梳理:
do...while语句
描述:do..while循环和while循环非常像,二者经常可以相互代替,但是do..while的特点是不管条件成立不成立,都会执行一次。
语法:
do {
// 循环体;
} while (循环条件);
案例:求100以内所有3的倍数的和
var i=0;
var sum=0;
do{
if(i%3==0){
sum+=i;
}
i++;
}while(i<=100);
console.log(sum);
console.log(i);
使用do-while循环:输出询问“我爱你,嫁给我吧?”,选择“你喜欢我吗?(y/n):",如果输入为y则打印”我们形影不
离“,若输入为n,则继续询问
do{
alert("我爱你,嫁给我吧?")
var a = prompt("你喜欢我吗?");
if(a=='y'){
alert('我们形影不离');
}else if(a=='n'){
alert('选错了,重新选')
}else{
alert('输入格式有误');
}
}while(a!='y');
for语句
描述:while和do..while一般用来解决无法确认次数的循环。for循环一般在循环次数确认的时候比较方便。
语法:
// for循环的表达式之间用的是;号分隔的,千万不要写成,
for (初始化表达式1; 判断表达式2; 自增表达式3) {
// 循环体4
}
执行顺序:1243 ---- 243 -----243(直到循环条件变成false)
1. 初始化表达式
2. 判断表达式
3. 自增表达式
4. 循环体
案例:打印1-100之间所有数
for(i=1;i<=100;i++){
console.log(i);
}
求1-100之间所有数的和
var sum=0;
for(i=1;i<=100;i++){
sum+=i
}
console.log(sum);
求1-100之间所有数的平均值
var sum=0;
for(i=1;i<=100;i++){
sum+=i;
a=sum/i;
}
console.log(a);
求1-100之间所有偶数的和
var sum=0;
for(i=1;i<=100;i++){
if(i%2==0){
sum+=i;
}
}
console.log(sum);
打印正方形
var str ='';
//外部循环 控制行数
for (var j = 0; j < 10; j++){
//内部循环 控制每行输出个数
for (var i = 0; i < 10; i++){
str+= '* ';
}
str = str + '\n';
}
console.log(str);
求1-100之间所有数的乘积
var sum=1;
for(i=1;i<=100;i++){
sum *=i;
}
console.log(sum);
求1-100之间所有奇数的和
var sum=0;
for(i=1;i<=100;i++){
if(i%2!=0){
sum+=i;
}
}
console.log(sum);
计算1-100之间能3整除的数的和
var sum=0;
for(i=1;i<=100;i++){
if(i%3==0){
sum+=i;
}
}
console.log(sum);
计算1-100之间不能被7整除的数的和
var sum=0;
for(i=1;i<=100;i++){
if(i%7!=0){
sum+=i;
}
}
console.log(sum);
本金10000元存入银行,年利率是千分之三,每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少?
var sum=10000;
for(i=0;i<5;i++){
sum+=sum*0.003;
}
console.log(sum);
有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。已知一对兔子每个月可以生一
对小兔子,而一对兔子从出生后第3个月起每月生一对小兔子。假如一年内没有发生死亡现象,那么,一对兔子一年内(12个
月)能繁殖成多少对?(兔子的规律为数列,1,1,2,3,5,8,13,21)
var sum=0;
var a=1;
var b=1;
for(i=3;i<=12;i++){
sum=a+b;
a=b;
b=sum;
}
console.log(sum);
continue和break
描述:break:立即跳出整个循环,即循环结束,开始执行循环后面的内容(直接跳到大括号)
continue:立即跳出当前循环,继续下一次循环(跳到i++的地方)
案例:求整数1~100的累加值,但要求碰到个位为3的数则停止累加
var sum=0;
for(i=1;i<=100;i++){
if(i%10==3){
break;
}
sum+=i
}
console.log(sum);
求整数1~100的累加值,但要求跳过所有个位为3的数
var sum=0;
for(i=1;i<=100;i++){
if(i%10==3){
continue;
}
sum+=i
}
console.log(sum);
拓展练习:
求1-100之间不能被7整除的整数的和(用continue)
var sum=0;
for(i=1;i<=100;i++){
if(i%7==0){
continue;
}
sum+=i;
}
console.log(sum);
求200-300之间所有的奇数的和(用continue)
var sum=0;
for(i=200;i<=300;i++){
if(i%3!=0){
continue;
}
sum+=i;
}
console.log(sum);
求200-300之间第一个能被7整数的数(break)
for(i=200;i<=300;i++){
if(i%7==0){
console.log(i);
break;
}
}