C语言学习与总结---第五章:循环结构程序设计

本文详细介绍了C语言中的循环结构,包括while、do-while和for循环的使用,以及循环的嵌套、continue和break语句的控制效果。同时,通过实例解析了各种循环在不同情况下的应用,如求和、矩阵打印、Fibonacci数列、素数判断等,帮助读者深入理解C语言循环机制。
摘要由CSDN通过智能技术生成

5.1 while语句

一般形式:

  while (表达式)
  {
    语句
  }

特点:先判断表达式,后执行语句。
在这里插入图片描述
例,求1到100的和

#include<stdio.h>  
int main()  
{
     
    int i = 1, sum = 0;  
    while (i <= 100)  
    {
     
        sum += i;  
        i++;  
    }  
    printf("sum = %d\n", sum);  
    return 0;  
} 

注意:
(1)循环体如果包含一个以上的语句,应该用大括弧括起来,以复合语句的形式出现。
(2)在循环体中应有使循环趋向于结束的语句。

5.2 do-while语句

一般形式:

 	 do 
  {
     循环体语句
  } while (表达式);

特点: 先执行循环体,然后判断循环条件是否成立。
在这里插入图片描述
例,求1到100的和

#include<stdio.h>  
int main()  
{
     
    int i = 1, sum = 0;  
    do  
    {
     
        sum += i;  
        i++;  
    } while (i <= 100);  
    printf("sum = %d\n", sum);  
    return 0;  
} 

5.3 for语句

一般形式:

 	for(表达式1;表达式2;表达式3)
      { 
         语句
      }

最简单的形式:

for(循环变量赋初值;循环条件;循环变量增值) 
{
	语句
} 

注:
(1) 与for语句等价的while语句的形式:

	表达式1;
	while(表达式2)
	{  
	     语句
	     表达式3;
	}

(2) for语句中的“表达式1”可以省略,此时应在for语句之前给循环变量赋初值。
例如:

	for ( ;  i <= 100; i++)  sum = sum + i; 

注意: 表达式1后面的分号不能省略
(3) 如果表达式2省略,即不判断循环条件,循环无终止地进行下去。即认为表达式2始终为真。例如:

for (i = 1;  ; i++)   sum = sum + i;     

(4) 表达式3也可以省略,但应该另外设法保证循环能正常结束。
例如:

 	for (i = 1; i <= 100; )
   	{ 
             sum = sum + i;
               i++;
    }     

(5) 可以省略表达式1和表达式3,只有表达式2, 即只给循环条件。
例如:

for (; i<=100; )                                 
{                                              
     sum = sum + i;                        
     i++;                                          
}                                     

相当于

while (i<=100)
 {
    sum = sum + i;
    i++;
 }

(6) 表达式1和表达式3可以是一个简单的表达式,也可以包含多个简单表达式,中间用逗号间隔。例如

for (sum=0, i=1; i<=100; i++)   sum = sum + i;
 

 for (i=1; i<=100; i++, i++)   sum = sum + i;

相当于

  for (i=1; i<=100; i=i+2)   sum = sum + i;

例:

for (   ; (c=getchar()) != ‘\n’;   )
printf(″%c″,c);

语句中只有表达式2,而无表达式1和表达式3。作用:每读入一个字符后立即输出该字符,直到遇到“换行”为止。

例,求1到100的和

#include<stdio.h>  
int main()  
{
     
    int i, sum = 0;  
    for (i = 1; i <= 100; i++)  
        sum += i;  
    printf("sum = %d\n", sum);  
    return 0;  
}

5.4 循环的嵌套

一个循环体内又包含另一个完整的循环结构称为循环的嵌套。
三种循环(while循环、do-while循环和for循环)可以互相嵌套

例,输出一个矩阵
[ 2 3 4 5 3 4 5 6 4 5 6 7 ] \left[\begin{matrix} 2 & 3 & 4 & 5\\ 3&4&5&6\\ 4&5&6&7\\ \end{matrix} \right] 234345456567

#include<stdio.h>  
int main()  
{
     
    int i, j;  
    for (i = 1; i <= 3; i++)  
    {
     
        for (j = 1; j <= 4; j++)  
            printf("%d ", i + j);  
        printf("\n");  
    }  
    return 0;  
}

5.5 while与do-while的比较

在一般情况下,用while语句和用do-while语句处理同一问题时,它们的结果一样。但是如果while后面的表达式一开始就为假时,两种循环的结果是不同的。
例如下面两个程序

#include<stdio.h>  
int main()  
{
     
    int i, sum = 0;  
    printf("please enter i: ");  
    scanf_s("%d"<
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值