C语言学习之关键字第六讲
来源:互联网 发布:对阿里的数据分析 编辑:程序博客网 时间:2024/04/28 20:08
for:for循环结构,for(1;2;3)4;的执行顺序为1->2->4->3->2...循环,其中2为循环条件。在整个for循环过程中,表达式1只计算一次,表达式2和表达式 3则可能计算多次,也可能一次也不计算。循环体可能多次执行,也可能一次都不执行。
do :do循环结构,do 1 while(2); 的执行顺序是1->2->1...循环,2为循环条件
while :while循环结构,while(1) 2; 的执行顺序是1->2->1...循环,1为循环条件
以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环。
C语言For循环详解
c语言中的for循环语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句.
for(表达式 1;表达式 2;表达式 3)语句
它的执行过程如下:
(1)先求表达式 1.
(2)求表达式2,若其值为真(值为非0),则执行for语句中指定的内嵌语句,然后执行下面第三步 做若为
假(值为0),则结束循环,转到第5步.
(3)求解表达式3
(4)转回上面第(2)步骤继续执行;
(5)结束循环,执行for语句下面的一个语句;
for(循环变量赋初值;循环条件;循环变量增值)语句
如
它的执行相当于
while(i<=100){
sum=sum+i;
i++;
}
显然,用for语句更简单、方便。
说明:
(1)for语句的一般形式中的"表达式1"可以省略,此时应在for语句之前给循环变量赋初值.注意省略表达式1时,其后的分号不能省略.如for(;i<=100;i++){....};
(2)如果表达式2省略 即不判断循环条件,循环无终止地循环下去,也就是认为表达式2始终为真.
例如:for(i=1;;i++){.....};
相当于
while(1)
{sum=sum+1;
i++;
}
(3)表达式3也可以省略,但此时程序设计者应另外设法保证循环能正常结束.如:
{sum=sum+1;
i++;
}
这个例子的循环增量没有放在表达式三的位置 而是作为循环体的一部分 其效果是一样的.
(4)可以省略表达式1和表达式3,只有表达式2 即只给循环条件.
如
{
sum=sum+i;
i++;
}
这个相当于
whlie(i<=100)
{
sum=sum+i;
i++;
}
(5)三个表达式都可以省略,如:
for(;;)语句
相当于
while(1)语句
即不设初值 不判断条件(认为表达式2为真值)循环变量不增值,无终止的执行循环体.
(6)表达式1也可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式.如:
{
sum=sum+i;
}
for(sum=0,i=0;i<=100;i++)
{
sum=sum+i;
}
do
语句
while(表达式);
这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至少要执行一次循环语句。其执行过程可用下图表示。
用do-while语句计算从1加到100的值
- #include <stdio.h>
- int main(void){
- int i,sum=0;
- i=1;
- do{
- sum=sum+i;
- i++;
- }
- while(i<=100);
- printf("%d\n",sum);
- return 0;
- }
1) while循环:
- #include <stdio.h>
- int main(void){
- int sum=0,i;
- scanf("%d",&i);
- while(i<=10){
- sum=sum+i;
- i++;
- }
- printf("sum=%d",sum);
- return 0;
- }
2) do-while循环:
- #include <stdio.h>
- int main(void){
- int sum=0,i;
- scanf("%d",&i);
- do{
- sum=sum+i;
- i++;
- }
- while(i<=10);
- printf("sum=%d",sum);
- return 0;
- }
- C语言学习之关键字第六讲
- C语言学习之关键字第一讲
- C语言学习之关键字第二讲
- C语言学习之关键字第三讲
- C语言学习之关键字第四讲
- C语言学习之关键字第五讲
- C语言学习之关键字第七讲
- C语言学习之关键字第八讲
- C语言学习之关键字第九讲
- C语言学习之关键字第十讲
- C语言学习之关键字第十一讲
- C语言学习之关键字第十二讲
- C语言学习之关键字第十四讲
- C语言学习笔记之 第六讲:头文件源文件以及include包含指令
- 第六讲 单片机之c语言RS485通信
- C语言学习之关键字
- C语言学习之数组第一讲
- C语言学习之指针第一讲
- opencv findContours 相关
- 用户空间与内核的交互---IOCTL
- 模板模式(Template)-水泥厂订货
- Android SDK 镜像网站
- Excel教程
- C语言学习之关键字第六讲
- STMF4带UCOSIII贪吃蛇
- 单片机和嵌入式系统linux的区别
- ioctl()函数详解
- matlab 双y轴
- The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
- 1032
- 尘封在沙漏里的友谊
- 模式识别_字符识别算法设计