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语言三大循环的使用以及示例

相关推荐
zyl7658 小时前
FlashAttention 详解:从 GPU 硬件、普通 Attention 到分块计算与 Online Softmax
算法
爱读书的小胖12 小时前
LeetCode 122:买卖股票的最佳时机 II(C)解题分析
算法
结局无敌12 小时前
React Native for OpenHarmony 实战:三方库 react-native-modal-dialog 的鸿蒙化适配指南
深度学习·算法·react native·react.js·harmonyos
WJ.Polar12 小时前
Java封装、继承、多态
java·开发语言
摇滚侠12 小时前
Java 中如何表示负数,有符号和无符号的区别,补码的计算规则,char byte short int long 的范围
java·开发语言
OPEN-F12 小时前
ROS2系列教程:上位机建图与导航(原理综合)
算法·机器人
weixin_3077791312 小时前
C++代码实现MATLAB中的fitrtree函数功能
开发语言·c++·算法·matlab
爱读书的小胖12 小时前
Codewars:Rot13(C)解题分析
c语言·开发语言
tomwang032212 小时前
路径优化建模、优化算法分类及工程化小结
算法·数学建模·分类
小羊没烦恼!13 小时前
Ajax与JSON的一些总结
android·java·前端·数据库·mysql·算法·okhttp