一、for循环
结构:for(表达式1 ;表达式2;表达式3){ }
注意:return(只能用于函数) break(跳出当前循环) continue (跳出当前循环 进入下次循环)
关于for循环,
- 3个表达式的都可以省略,即for(; ;){ } ,这个循环可以运行,但是是一个死循环!!!
- 对表达式1和表达式3省略,对for循环没有影响,只是少执行了代码而已。
- 如果表达式2省略,表示此处为true,代码可以运行,但是是一个死循环。
- 如果第一次判断时表达式2为false,则循环体内的代码一次也不执行。
eg1:使用for循环打印九九乘法表。
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
for(var i=1;i<10;i++)
{
for(var k=1;k<=i;k++)
{
document.write(i+"*"+k+"="+(i*k<10?i*k+" ":i*k+" "));
}
document.write("<br>");
}
</script>
</head>
<body>
</body>
</html>
运行结果:
注意:1*1=1的显示需要字符串的拼接。
eg2:使用for循环打印菱形。
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script>
//思路:打印两个上下对称的三角形组成菱形
var h=21;//设置菱形的高度
for(var i=0;i<h;i++)
{
if(i<parseInt(h/2)+1)//定义i为行数 i从0开始
{
for(var k=h-i-3;k>0;k--)//定义k为每一行第一个*前-的数量
{
document.write("-");
}
for(var k=0;k<2*i+1;k++)//定义k为每一行*的数量
{
document.write("*");
}
document.write("<br>");//换行
}
else{
for(var k=0;k<i-2;k++)//定义k为每一行第一个*前-的数量
{
document.write("-");
}
for(var k=0;k<2*h-(2*i+1);k++)//定义k为每一行*的数量
{
document.write("*");
}
document.write("<br>");//换行
}
}
</script>
</head>
<body>
</body>
</html>
运行结果:
+=和=的区别:+=是指累加赋值,=只是单纯赋值。
eg:
运行结果:
二、while 和 do while
两者区别:while 先判断后执行 ;
do while 先执行后判断(至少执行一次)。
(1)while循环
while 循环会在指定条件为真时循环执行代码块。
语法: while (条件) {
需要执行的代码
}
eg:
运行结果:无结果
(2)do while循环
do/while 循环是 while 循环的变体。,在检查条件是否为真之前,该循环会执行一次代码块,如果条件为真的话,就会重复这个循环。
语法:do {
需要执行的代码
} while (条件);
eg:
运行结果: