循环:一遍又一遍重复执行的相同代码或相似的代码
循环特点:
1、循环的条件
规定了循环的执行次数
2、循环操作
要执行相同或相似的语句--循环做什么事情
3、循环的变量
做循环的记录
while循环结构
1、语法
while(条件){//条件:得到的结构必须是boolean
//循环体 ---重复做的事情
}
循环语句中的控制语句
1、continue
终止本次循环的执行,继续下一次循环
2、break
退出循环结构
流程:
1、判断 循环条件
2、如果条件为真,则执行循环体 ; 更改循环变量的值 ----更改的方向是趋向于结束循环
3、再一次判断条件 ,如果条件为真则继续执行循环体 ....
4、止到条件为假 ,则结束循环
例子:
用while()循环来计算1+2+3 ... +98+99+100的值:
<html> <head> <title>计算1+2+3 ... +98+99+100的值</title> </head> <body> <script language="JavaScript" type="text/javascript"> var total=0; var i=1; while(i<=100){ total+=i; i++; } alert(total); </script> </body> </html>
例子
珠峰海拔8848米,现在有足够大的纸,厚度是0.01米,折多少次高度可以超过珠穆朗玛峰
var i=0; while(h<8848){ h*=2; i++; } document.write('折叠'+i+'次能超过珠穆朗玛峰,'+'纸高:'+h);
do...while循环结构
1.语法:
do{
//循环体
}while(条件)
2.流程
1、执行一次循环体
2、判断循环条件是否满足
如果条件为真,则继续执行循环体
如果条件为假,则退出循环
3.do while 和 while之间的区别
do..while至少执行一次 先执行 再判断
while 可能一次都不执行 先判断 后执行
do-while()循环来计算1+2+3 ... +98+99+100的值:
代码如下
<html>
<head>
<title>计算1+2+3 ... +98+99+100的值</title>
</head>
<body>
<script language="JavaScript" type="text/javascript">
var total=0;
var i=1;
do{
total+=i;
i++;
}while(i<=100);
alert(total);
</script>
</body>
</html>
例子2.反复接收用户输入,且打印用户输入的内容,知道输入的是exit为止
<script>
function fun() {
do{
var input=prompt("请输入:");
console.log(input);
}while(input != "exit" );
}
</script>
<button onclick="fun()">反复接收用户输入(do..while版)</button>
for循环
1、语法
for(表达式1;表达式2;表达式3){
循环操作 4
}
表达式1:声明条件 1
表达式2:循环条件判断 2
表达式3:更新循环变量 3
例子:/控制台打印1-100之间所有的数字
function fun(){
for(var i=1;i<=100;i++){
console.log(i);
}
console.log(i);
}
打印10*10个※的正方形,效果如下:
※※※※※※※※※※
※※※※※※※※※※
※※※※※※※※※※
※※※※※※※※※※
※※※※※※※※※※
※※※※※※※※※※
※※※※※※※※※※
※※※※※※※※※※
※※※※※※※※※※
※※※※※※※※※※
<script>
//打印10*10个※的正方形
var s='';
for(var i=0;i<10;i++){
for(var h=0;h<10;h++){
s+='※';
}
s+='
';
}
console.log(s)
</script>
打印出下图所示图形
※※※※※※※※※※
※※※※※※※※※
※※※※※※※※
※※※※※※※
※※※※※※
※※※※※
※※※※
※※※
※※
※
var s='';
for(var i=0;i<10;i++){
for(var h=i;h<10;h++){
s+='※';
}
s+='
';
}
console.log(s)
计算100内不能被7整除的所有数的和
var s=0;
for(var i=0;i<=100;i++){
if(i%7==0){
continue;
}
s+=i;
}
console.log(s)
200-300中第一个能被7整除的数
for(var i=200;i<300;i++){
if(i%7==0){
console.log(i);
break;
}
}
九九乘法口诀表
<script type="text/javascript">
for(var i=1;i<=9;i++){
for(var j=1;j<=i;j++){
document.write(j+"*"+i+"="+i*j+" ");
}
document.write("<br />");
}
</script>
判断101-200之间有多少个素数,并输出所有素数。
function fun1(){
for(var i=101,count=0;i<200;i++){
var flag=false;
for(j=2;j<i;j++){
if(i%j == 0){
flag=false;
break;
}else{
flag=true;
}
}
if(flag){
count++;
console.log("素数为:"+i)
}
}
}
打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
for(i=100;i<1000;i++){
var a= parseInt(i%10); //个
var b=parseInt((i/10)%10); //十
var c=parseInt(i/100); //百
if(a*a*a+b*b*b+c*c*c==i){
document.write('水仙花数:'+i+'<hr />');
}
}
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
function fun(){
var num = Number(prompt("请输入一个数:"));
var count=Number(prompt("叠加的个数:"))
var n=0,sum=0;//n表示每一个加数,sum表示所有累加的和
for(var i=1;i<=count;i++){
n=n*10+num;//每一个加数
sum+=n;
}
console.log(sum);
}
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
第一天采了 x 个桃子,x/2 - 1 = 剩下的桃子。
// 所以 ( 剩下的桃子 + 1 ) * 2 = 等于 x ,此处的 x 为前一天的桃子
// var x
// for(x=1;x<=9;x++){
// x=(x+1)*2;
// console.log(x)
// }
前一天/2 - 1 =后一天
后一天 + 1 = 前一天/2
前一天 = (后一天 + 1)*2
function tao() {
var sum = 1 // 第10天 剩余1个
for (var i = 9 ; i > 0 ; i --) {
// i 等于几 就是计算第几天时候的 桃子,最后i 等于1 计算第一天的
sum = (sum + 1) * 2
}
console.log('第一天共摘了多少'+sum+'个桃')
}
有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。
问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
var sum=10
for(var i=0;i<4;i++){
sum=sum+2;
}
console.log(sum)
计算用户输入的数字的阶乘,例如用户输入的是5,则计算5的阶乘,5的阶乘为 5*4*3*2*1
var num=prompt("输出一个数的阶层")
var sum=1;
for(var k=2;k<=num;k++){
sum=k+"*"+sum;
}
document.write("阶层为:"+sum)
定义一个函数,返回1+1/3+1/5+1/7+....1/n的和
function fun(){
var n=prompt("输出一个数");
var sum=0;
for(var i = 1; i <=n; i++){
if(i%2!=0){
sum+=1/i;
}
console.log("和为:"+sum)
}
}
1~100奇数和
var sum=0;
for(var i=1;i<=100;i+=2){
sum+=i;
}
document.write(sum+"<br />");
1~100偶数和
var sum=0;
for(var i=2;i<=100;i+=2){
sum+=i;
}
document.write(sum);
小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元整好花掉,可如有哪些购买结合?
//a=洗发水,b=香皂,c=牙刷
//100元可以买6瓶洗发水
for(var a=0;a<=6;a++){
//100元可以买50块香皂
for(var b=0;b<=50;b++){
//100元可以买20个牙刷
for(var c=0;c<=20;c++){
//条件
if(15*a+2*b+5*c==100){
document.write("洗发水:"+a+"香皂:"+b+"牙刷:"+c+"<hr />");
}
}
}
}
打印出下列图形
●●●●●●●●
●●●●●●●●
●●●●●●●●
●●●●●●●●
●●●●●●●●
●●●●●●●●
●●●●●●●●
//循环的行数
for(var x=1;x<=7;x++){
//循环的列数
for(var y=1;y<=8;y++){
document.write('●');
}
//循环完每一行输出一个换行
document.write('<br />');
}
求1-100之间能被3整除的所有数
<script type="text/javascript">
var sum = 0;
for(var i =0;i<= 100;i++){
if (i%3 == 0){
sum += i;
}
}
document.write(sum);