for循环使用详解(c语言版)
说明:c语言的很多语法部分都和JAVA,AS等相同 特别是for的用法.
c语言中的for循环语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句.
for(表达式 1;表达式 2;表达式 3)语句
它的执行过程如下:
(1)先求表达式 1.
(2)求表达式2,若其值为真(值为非0),则执行for语句中指定的内嵌语句,然后执行下面第三步 做若为
假(值为0),则结束循环,转到第5步.
(3)求解表达式3
(4)转回上面第(2)步骤继续执行;
(5)结束循环,执行for语句下面的一个语句;
for(循环变量赋初值;循环条件;循环变量增值)语句
如
for(i=1;i<=100;i++)sum=sum+i;
它的执行相当于
i=1;
while(i<=100){
sum=sum+i;
i++;
}
显然,用for语句更简单、方便。
说明:
(1)for语句的一般形式中的"表达式1"可以省略,此时应在for语句之前给循环变量赋初值.注意省略表达式1时,其后的分号不能省略.如for(;i<=100;i++){....};
(2)如果表达式2省略 即不判断循环条件,循环无终止地循环下去,也就是认为表达式2始终为真.
例如:for(i=1;;i++){.....};
相当于
i=1;
while(1)
{sum=sum+1;
i++;
}
(3)表达式3也可以省略,但此时程序设计者应另外设法保证循环能正常结束.如:
for(i=1;i<=100;)
{sum=sum+1;
i++;
}
这个例子的循环增量没有放在表达式三的位置 而是作为循环体的一部分 其效果是一样的.
(4)可以省略表达式1和表达式3,只有表达式2 即只给循环条件.
如
for(;i<=100;)
{
sum=sum+i;
i++;
}
这个相当于
whlie(i<=100)
{
sum=sum+i;
i++;
}
(5)三个表达式都可以省略,如:
for(;;)语句
相当于
while(1)语句
即不设初值 不判断条件(认为表达式2为真值)循环变量不增值,无终止的执行循环体.
(6)表达式1也可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式.如:
for(sum=0;i<=100;i++)
{
sum=sum+i;
}
for(sum=0,i=0;i<=100;i++)
{
sum=sum+i;
}
等等写法.
[color=green]2、问:编写循环语句时,应该注意哪些问题?
答:1)如果循环体中包含一个以上的语句,应该用花括弧括起来,以复合语句的形式出现。如果不加花括弧,则while语句的范围只到while后的第一个分号处。
2)在循环体中应该有使循环趋向结束的语句,否则会导致死循环。
3、问:for语句中哪几个部分可以省略?
答:1)for语句的一般形式中的“表达式1”可以省略。此时应该在for语句之前给循环变量赋初值。
2)表达式2省略可以省略,即不判断循环条件(认为表达式始终为真),循环会无终止的运行下去。此时可以在循环体中用break语句结束循环。
3)表达式3省略可以省略,此时应另外设置条件保证循环能正常结束。如在循环体内修改循环变量。
4、continue语句可以在什么地方使用,它的作用是什么?
答:continue语句只用于循环结构的内部,常与if语句联合起来使用,以便在满足条件时提前结束本次循环。它的作用是:结束本次循环,使程序回行到循环条件,判断是否提前进入下一次循环。
5、break语句可以结束多重循环吗?
答:不能。
break只能跳出一层循环(或者一层switch语句结构)。[/color]
说明:c语言的很多语法部分都和JAVA,AS等相同 特别是for的用法.
c语言中的for循环语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句.
for(表达式 1;表达式 2;表达式 3)语句
它的执行过程如下:
(1)先求表达式 1.
(2)求表达式2,若其值为真(值为非0),则执行for语句中指定的内嵌语句,然后执行下面第三步 做若为
假(值为0),则结束循环,转到第5步.
(3)求解表达式3
(4)转回上面第(2)步骤继续执行;
(5)结束循环,执行for语句下面的一个语句;
for(循环变量赋初值;循环条件;循环变量增值)语句
如
for(i=1;i<=100;i++)sum=sum+i;
它的执行相当于
i=1;
while(i<=100){
sum=sum+i;
i++;
}
显然,用for语句更简单、方便。
说明:
(1)for语句的一般形式中的"表达式1"可以省略,此时应在for语句之前给循环变量赋初值.注意省略表达式1时,其后的分号不能省略.如for(;i<=100;i++){....};
(2)如果表达式2省略 即不判断循环条件,循环无终止地循环下去,也就是认为表达式2始终为真.
例如:for(i=1;;i++){.....};
相当于
i=1;
while(1)
{sum=sum+1;
i++;
}
(3)表达式3也可以省略,但此时程序设计者应另外设法保证循环能正常结束.如:
for(i=1;i<=100;)
{sum=sum+1;
i++;
}
这个例子的循环增量没有放在表达式三的位置 而是作为循环体的一部分 其效果是一样的.
(4)可以省略表达式1和表达式3,只有表达式2 即只给循环条件.
如
for(;i<=100;)
{
sum=sum+i;
i++;
}
这个相当于
whlie(i<=100)
{
sum=sum+i;
i++;
}
(5)三个表达式都可以省略,如:
for(;;)语句
相当于
while(1)语句
即不设初值 不判断条件(认为表达式2为真值)循环变量不增值,无终止的执行循环体.
(6)表达式1也可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式.如:
for(sum=0;i<=100;i++)
{
sum=sum+i;
}
for(sum=0,i=0;i<=100;i++)
{
sum=sum+i;
}
等等写法.
[color=green]2、问:编写循环语句时,应该注意哪些问题?
答:1)如果循环体中包含一个以上的语句,应该用花括弧括起来,以复合语句的形式出现。如果不加花括弧,则while语句的范围只到while后的第一个分号处。
2)在循环体中应该有使循环趋向结束的语句,否则会导致死循环。
3、问:for语句中哪几个部分可以省略?
答:1)for语句的一般形式中的“表达式1”可以省略。此时应该在for语句之前给循环变量赋初值。
2)表达式2省略可以省略,即不判断循环条件(认为表达式始终为真),循环会无终止的运行下去。此时可以在循环体中用break语句结束循环。
3)表达式3省略可以省略,此时应另外设置条件保证循环能正常结束。如在循环体内修改循环变量。
4、continue语句可以在什么地方使用,它的作用是什么?
答:continue语句只用于循环结构的内部,常与if语句联合起来使用,以便在满足条件时提前结束本次循环。它的作用是:结束本次循环,使程序回行到循环条件,判断是否提前进入下一次循环。
5、break语句可以结束多重循环吗?
答:不能。
break只能跳出一层循环(或者一层switch语句结构)。[/color]