==========================================
1、循环结构-for
1、while
在控制台上输出1-100之间所有的数字
//1、声明条件:从1开始
var i=1;
//2、循环结构-循环条件
while(i<=100){//条件
console.log(i);//3、操作
i++;//4、更新循环变量
}
2、for语法
for(表达式1;表达式2;表达式3){
//循环操作
}
表达式1:声明条件
表达式2:循环条件判断
表达式3:更新循环变量
for循环执行流程:
1、计算表达式1的值
2、计算表达式2的值(boolean),如果为true,则执行循环体,如果为false,则退出循环
3、执行循环体
4、计算表达式3的值
5、计算表达式2... ...
3、for语句三个表达式的特殊用法
1、表达式1 允许为空
for(;表达式2;表达式3){
}
表达式1;
for(;表达式2;表达式3){
}
2、表达式2 允许为空
如果省略的话,则为死循环
最好在循环内部补充退出条件
3、表达式3 允许为空
死循环
4、三个表达式都允许为空
for(;;){
console.log("这是死循环");
}
5、表达式1 和 表达式3 的内容可以多样化
允许编写多个表达式
4、循环嵌套
for/while/do.while 多允许相互嵌套或转化
循环嵌套:在一个循环中,又出现另一个循环
for(var i=1;i<=10;i++){
for(var j=1;j<=10;j++){
console.log(j);
}
}
5、while/do..while/for 的异同点
1、for 和 while
共同点:
先判断条件,再执行循环体
使用场合:
1、for
优先使用在确定循环次数的场合下
2、while
优先使用在不确定循环次数的场合下
2、do...while
先执行循环操作,再判断循环条件
最少 执行1次循环
场合:
1、优先适用于不确定循环次数的场合下
2、先执行循环体,根据循环体内的操作决定循环条件时,使用do...while
练习:
要求用户 弹框中分别输入 年,月,日
求:该日 是星期?
前提:1900.1.1 是星期一
求:2016.10.28
1900.1.1 - 2015.12.31 : x
2016.1.1 - 2016.9.30 :y
2016.10.28 距 1900.1.1 :x+y+28
练习:
1、控制台上 打印输出 *
2、控制台上 打印输出 *****
3、控制台上 打印输出
*****
*****
*****
*****
*****
4、控制台上 打印输出 以下内容
* 第1行 1个星星
** 第2行 2个星星
*** 第3行 3个星星
**** 第4行 4个星星
***** 第5行 5个星星
5、打印99乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
.....
1*9=9 2*9=18 3*9=27 4*9=36
3、练习
1、打印输出 1-1000之间所有的奇数
2、计算 1-1000 所有偶数的和
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
...
3、素数
从3 开始
3 是素数
4 不是素数
5 是素数
6 不是素数
7 是素数
8 不是素数
9 不是
10 不是
11 是
10:2-9
35:2-34/2
36: 2-36/2
36/18 = 2
36/19 = 1.0000
36/36 = 1
有一对兔子,从出生的第3个月起每个月都生一对兔子,小兔子长到第3个月后每个月又生一对兔子,假如兔子都不死,问某个月的兔子总和是多少
1,1,2,3,5,8,... ...
1,1,2,3,5,8,13,21,34,55,89
斐波那契数列
var n1=1,n2=1;
n1 = n1 + n2;
n2 = n1 + n2;
console.log(n1);
console.log(n2);
n1 = n1 + n2;
n2 = n1 + n2;
console.log(n1);
console.log(n2);
求:数列中,某位上的数字时多少
假定 f(10); 想求 第10个月 兔子的总量
f(20); 想求 第20个月 兔子的总量
f(5); 想求 第5个月 兔子的总量
f(4); 想求 第4个月 兔子的总量
f(3); 想求 第3个月 兔子的总量
f(2); 想求 第2个月 兔子的总量 = 1
f(1); 想求 第1个月 兔子的总量 = 1
f(3)=f(2)+f(1)
f(4)=f(3)+f(2)
f(5)=f(4)+f(3)
...
f(100)=f(99)+f(98)