c语言中循环的介绍与简单应用

c语言中一共有三个循环,分别如下:

while ; do{}while(); for( ; ; );

while循环的使用方式,我们写一个显示平方表的方法应用一下

cpp 复制代码
#include<stdio.h>  
int main()  
{  
    int i = 0, n = 0;  
    printf("Enter number of entries in table: ");
    scanf("%d",&n);  
    i = 1;  
    while(i <= n)  
    {  
        printf("%10d => %10d\n",i,i*i);  
        ++i;   
    }  
    printf("\n");  
    return 0;  
}

在有循环语句的程序中,通常循环开始前对循环条件进行初始化;而在循环体语句中要包

含修改循环条件的语句,否则循环将不能终止而陷入死循环

我们再看一个例子:对用户输入的整型数列求和

cpp 复制代码
#include<stdio.h>  
int main()  
{  
    int n = 0,sum = 0;  
    printf("Enter intergers ( 0 to terminate): ");  
    scanf("%d",&n);  
    while(n != 0)  
    {  
        sum += n;  
        scanf("%d",&n);  
    }  
    printf("The sum is: %d \n",sum);  
    return 0;  
}

while循环和do ...while循环的区别在于,前者需要先判断,满足条件后才能进入循环,后者直接先运行一边循环体,再判断看是否继续执行循环体。也就是说do while循环至少执行一遍

do语句本质上就是while语句,只不过其控制表达式是在每次执行完循环体之后再进行判断

示例1:计算输入整型数值的位数

cpp 复制代码
#include<stdio.h>  
int main()  
{  
    int digits = 0,n;  
    printf("Enter a nonnegative integer: ");  
    scanf("%d",&n);  
    do  
    {  
        n /= 10;  //n = n/10;  
        digits++;  
    }while(n > 0);  
    printf("The Number has %d digit \n",digits);  
   return 0;  
}

对于"向上加"(变量自增) 或 "向下减"(变量自减) 的循环来说,for 语句通常是最好的选择。

for循环的常用方法如下:

cpp 复制代码
// 从0向上加到n-1  
for(i = 0; i < n; ++i) ...  
// 从1向上加到n  
for(i = 1; i <= n; ++i) ...  
// 从n-1向下减到0  
for(i = n-1; i >= 0; --i) ...  
//从n 向下减到1  
for(i = n; i > 0; --i) ...  
  
// 编写的控制表达式中把 i < n 写成 i <= n , 会犯"循环次数差一次" 错误

在使用for循环的时候可以在循环条件中省略表达式

for 循环中的"表达式1(初始化条件)"、"表达式2(循环条件)"和"表达式3(自增或自减)"都

是可选项,都可以省略(但分号';' 必须保留)

cpp 复制代码
int main()
{
    const int n = 10;
    int sum = 0; 
    int i = 1;  
    for(i = 1;i <= n;++i)     //1 常规写法
    {  
        sum = sum + i;  
    }  
    printf("sum : %d \n",sum);
    
    sum = 0;
    i = 1; 
    for(; i <= n;++i)         //2 省略表达式1, i= 1;
    {  
        sum = sum + i;
}
    printf("sum : %d \n",sum);
    
    sum = 0;
    i = 1;
    for(; i<=n;)             //3 省略表达式1和表达式2,  i= 1; ++i;
    {
        sum = sum + i;
        ++i;
    }
    printf("sum : %d \n",sum);
    
    sum = 0; 
    i = 1;
    for(;;)                   //4 省略表达式1,表达式2和表达式3,
    {
        if(i > n) break;  // 先判断,后执行
        sum = sum + i;
        ++i;
    }
    
    sum = 0; 
    i = 1;
    for(;;)                   //4
    {
        sum = sum + i;
        ++i;
        if(i > n) break;  // 后判断, 先执行
    }
    
    
    // 5 将循环语句写入表达式3中,注意使用,逗号分隔,不能使用分号';'分割。
    for(sum = 0, i = 1, i<= n; sum = sum+i,++i);  
    printf("sum : %d \n",sum);

如何写无限循环?

cpp 复制代码
while(1) { } 
for( ; ; ) {  }

以上就是c语言三大循环的使用以及示例

相关推荐
l1t3 分钟前
编译测试兼容gzip并行压缩解压工具pigz
c++·算法
摇滚侠9 分钟前
《On Java 中文版 基础卷》阅读笔记 安装 Java 和本书示例 02
java·开发语言·笔记
FfHUCisI19 分钟前
sync.Once 与 sync.Cond 源码与并发控制陷阱
服务器·开发语言·后端·golang
阿钱真强道24 分钟前
21 嵌入式操作系统 | JSON 与 json-c:生成与解析
c语言·开发语言·json·json-c
j7~24 分钟前
【Python】(篇六)《基础语法(函数、列表和元组、字典、文件)》---详解
开发语言·python·文件·函数·字典·编程学习·元组与列表
代码不停30 分钟前
BFS算法解决FloodFill问题
算法·bfs·宽度优先
重生之小比特37 分钟前
【C++进阶】红黑树的实现
java·开发语言·c++
纪念 22938 分钟前
C++算法(一)
开发语言·c++·算法
All for pursuit.1 小时前
【二叉树-10】114.二叉树展开为链表
数据结构·c++·算法·leetcode·链表
叠层归一研究院1 小时前
区分预算与通道诱导:Ω–L叠层体系的观测赋值与定量验证
人工智能·算法