JS的循环语句有很多种,例如for、while、do…while、for…in、each等
循环语句的主要作用在于重复执行代码体,代码精简、提高代码实用性及后续代码维护性。
for循环
语法:
for(初始化;条件判断;数值改变){
[循环代码体…]
}
说明:
可以灵活控制循环的起点,和终点
书写for循环时候一定要记得数值改变,否则成为死循环
while
语法:
while(条件表达式){
循环代码体…
}
说明:
while先进行条件判断,再执行代码
while中的代码执行条件:条件表达式结果为真
注意:
操作过程一定要进行表达式或数值改变,否则会产生死循环
do…while
语法:
do{
操作代码体…
}while(条件判断);
说明:
先执行操作,再判断
至少执行一次
with
语法(with 语句通常用来减少特定情形下必须写入的代码数量)
with ( <对象> )
{ <语句或语句组> }
原代码:
x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10)
y = Math.tan(14 * Math.E)
改后代码
with (Math){
x = cos(3 * PI) + sin (LN10)
y = tan(14 * E)
}
for、while如何取舍?
for主要用于可以指定循环次数的操作时使用,
while主要用于处理条件判断时处理
while与do…while的区别
while是先判断后执行,do…while是先执行后判断,至少执行一次。
声明多个变量,多个条件,多个迭代语句 必须数据类型相同并且多个变量之间以逗号分隔
for (var i = 6, j = 0; i>=0,j <= 6; i--,j++) {
document.write(i + "+" + j +"=" + (i+j) + "
");
}
continue:结束当前循环,进入下一轮循环 跳出
练习1
1到5的乘法
<script type="text/javascript">
//for
var a=1;
for (var i = 1; i <= 5; i++) {
a*=i;
}
document.write(a);
//while
var a=1;
var b=1;
while(a<=5){
b*=a;
a++;
}
document.write(b);
//do while
var a=1;
var b=1;
do{
b*=a;
a++;
}while(a<=5);
document.write(b);
script>
练习2
100以内偶数和
<script type="text/javascript">
//for
var a=0;
for (var i =1; i <= 100; i++) {
switch(true){
case i%2==0:a+=i;
break;
}
};
document.write(a);
//while
var a=1;
var b=0;
while(a<=100){
if (a%2==0) {
b+=a;
}
a++;
}
document.write(b);
//do while
var a=1;
var b=0;
do{
switch(true){
case a%2==0:b+=a;
break;
}
a++;
}while(a<=100);
document.write(b);
script>
练习3
0到9加9到0
练习四
等腰三角形
//for
for (var i = 1; i <= 10; i++) {
document.write("
");
for (var b = 10; b >= i; b--) {
document.write(" ");
}
for (var a=1; a<=i; a++) {
document.write("*"+" ");
}
}
//while
var a=1;
while(a<=10){
document.write("
");
var b=1;
var c=10;
while(c>=a){
document.write(" ");
c--;
}
while(b<=a){
document.write("*"+" ");
b++;
}
a++;
}
//do while
var a=1;
do{
document.write("
");
var b=1;
var c=10;
while(c>=a){
document.write(" ");
c--;
}
while(b<=a){
document.write("*"+" ");
b++;
}
a++;
}while(a<=10);
练习5
制作九九乘法表
//for
for (var i =1; i <= 9; i++) {
document.write("
");
for (var a=1; a<=i; a++) {
document.write(i+"x"+a+"="+i*a+" ");
};
};
//while
var a=1;
while(a<=9){
document.write("
");
var b=1;
while(b<=a){
document.write(a+"x"+b+"="+a*b+" ");
b++;
}
a++;
}
//do while
var a=1;
do{
document.write("
");
var b=1;
while(b<=a){
document.write(a+"x"+b+"="+a*b+" ");
b++;
}
a++;
}while(a<=9)
练习六
在页面上输出10个‘*’,奇数位置的为红色并加粗
//for
for (var i = 1; i <= 10; i++) {
if (i%2==1) {
document.write(""+"*"+"")
}else{
document.write("*");
}
};
//while
var a=1;
while(a<=10){
if (a%2==1) {
document.write(""+"*"+"")
}else{
document.write("*");
}
a++;
}
//do while
var a=1;
do{
if (a%2==1) {
document.write(""+"*"+"")
}else{
document.write("*");
}
a++;
}while(a<=10)
练习七
求1!~5!阶乘的和 (提示:1!+2!+3!+4!+5!)
//for
var b=0;
for(var a=1;a<=5;a++){
var d=1;
for(var c=1;c<=a;c++){
d*=c;
}
b+=d;
}
document.write(b);
//while
var a=1;
var d=0;
while(a<=5){
var b=1;
var c=1;
while(b<=a){
c*=b;
b++;
}
d+=c;
a++;
}
document.write(d);
//do while
var a=1;
var d=0;
do{
var b=1;
var c=1;
while(b<=a){
c*=b;
b++;
}
d+=c;
a++;
}while(a<=5)
document.write(d);