今天我们来聊聊for循环,
for(条件一;条件二;条件三){
//循环体
}
这就是for循环的构造
条件一:var 一个值
条件二:进入循环的判断条件
条件三:var 的值每一次循环完后,是否递增或递减
循环体:就是你输入所要循环的代码的地方
执行顺序:先执行条件一,再看条件一是否满足条件二的判断,如果满足则进入循环,反之则不进入循环,如果进入循环里则执行循环体里面的内容,最后再执行条件三。
一般for循环样式为
for(var i=0;i<10;i++){
console.log("1");//打印出10次1
}
说完最基础的for循环后我们在说一下双层for循环
for (条件一; 条件二; 条件三) {
//循环体
for (条件四; 条件五; 条件六) {
//循环体二
}
}
执行顺序:先执行条件一,再看条件一是否满足条件二的判断,如果满足则进入循环体,在循环体内如果有内容则,按顺序执行,从上向下执行,然后碰到第二个for循环后则,判断条件四是否满足条件五的条件,如果满足,则进入循环体二,执行完循环体二的内容后,执行条件六,然后在条件四自增(自减)后如果条件四继续满足条件五,则继续执行,直到条件四不满足条件五后,再执行条件三。
一般双层for循环的样式为
for (var i = 0; i < 10; i++) {
console.log("1"); //打印出10次1
for (var j = 0; j < 10; j++) {
console.log("2"); //打印出100次2
}
}
这就是基本的双层for循环,当然也有三层for循环,但是其原理跟双层for循环原理一样,等下我们看几个题目我们就知道了
基础题一
输出1-10与5相乘的结果
var s = 0;//接受总值
for (var i = 1; i <= 10; i++) {
s += i * 5
}
console.log(s);//275
基础题二
任意输入一个数,判断该数是否为水仙花数(每位上的数字的立方和等于该数本身)
for (var i = 0; i <1000 ; i++){
var a = prompt('请输入一个数')
var b=parseInt( a%10)
var c=parseInt(a/10%10)
var d=parseInt (a/100)
if((b*b*b)+(c*c*c)+(d*d*d)==a){
alert("是水仙花数")//有153,370,371,407
break;//因为这是一个一千次的循环所以需要在输入正确后跳出循环
}
else{
alert("不是水仙花数")
}
}
基础题三
用代码实现一个猜数字的小游戏,假设要猜的目标数字是8,先可以提示用户猜的数在0-10之间,然后循环接受用户输入的数字,如果用户输入的数字比目标数字小,就提示”小了,继续猜”,继续接受用户输入的数字,继续比较,如果大了,就”大了,继续猜”,如果用户在5次以内猜对了,就提示”你真聪明,猜对了!”并结束循环,如果猜了5次还没有猜对,就提示”真笨,不跟你玩了”,并结束循环
for (var i = 1; i < 10; i++) {
var a = prompt('输入')
if (i == 5) {
alert("下次再来吧")
break;
}
if (a < 8) {
alert("太小了")
continue
}
if (a > 8) {
alert("太大了")
continue
} else {
alert("恭喜")
break;
}
}
看着题目长,其实也就一点逻辑与代码
基础题四
循环接受本班学生的考试成绩,有30个学生,每个学生有5门成绩,接受并计算所有学生的所有门成绩的和,输出 (学生的人数由用户控制,询问用户是否要继续,答案为’1’时就接收下一个学生的成绩,每个学生还是5门成绩)
var he = 0;
for (var i = 1; i <= 30; i++) {
var one = Number(prompt("请输入第一门"))
var two = Number(prompt("请输入第二门"))
var three = Number(prompt("请输入第三门"))
var four = Number(prompt("请输入第四门"))
var five = Number(prompt("请输入第五门"))
var jixu = Number(prompt("是否继续"))
he += (one + two + three + four + five)
alert(he)
if (jixu != 1) {
alert("结束")
break
}
}
基础题五
打印一个九九乘法表
for (var i = 1; i <= 9; i++) {
for (var j = 1; j <= i; j++) {
if (j > i) {
break;
}
document.write(i + "*" + j + "=" + (i * j) + " ");
if (j == i) {
document.write("
");
}
}
}
基础题六
求乘积等于100 的所有乘数和被乘数(以一对的形式输出)
for (var i = 1; i <= 100; i++) {
for (var j = 1; j <= i; j++) {
if (i * j == 100) {
document.write(i + "*" + j + "=" + (i * j) + "
");
}
}
}
基础题七
有一个分数列2/1,3/2,5/3,8/5,13/8,21/13….,求前20项的和
var mu = 1, zi = 2;
var sum = 0;
for(var i = 0; i < 20; i++) {
sum +=zi / mu;
zi = mu + zi;
mu = zi - mu;
}
alert(sum);
基础题八
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
var a=1;
var b=(a+1)*2;
for(var i=1;i<=9;i++){
b=(b+1)*2
console.log(b);
}