【C 程序设计】C语言三大结构之循环结构

1. 循环结构定义

(1)定义:从 main() 函数开始执行,从上往下,使得某些语句重复执行。

(2)循环结构的程序:在顺序结构中,加入循环控制语句后的程序,比如循环控制语句 while、do … while、for等常用的循环控制语句。

(3)循环三要素:循环变量的初值、循环变量的判断、循环变量的更新。

(4)循环体结束标志:循环判断条件为假时跳出循环;break 语句存在,跳出循环。

2.循环控制语句

(1)while(循环条件)(当型循环):执行条件,当条件满足时,执行循环体。示例代码如下:

int main()
{
     //循环变量的初值
     int a = 5 ;
     int b = 0 ;
     int c = 0 ;
     //循环变量的判断
     while( b++ < a ) //先判断条件,如果为真则执行循环体,否则该循环体不执行
     { 
          //循环变量的更新
          c++ ;
          printf("b=%d",b) ;
     }
     printf("b=%d,c=%d",b,c) ;
     return 0;
}
  • 特点:先判断,再执行

(2)do … while(循环条件)(直到型循环):先执行 do 语句,如果 do 语句下只有一条语句则无需中括号,若是具有两条或以上语句,则需要使用中括号。然后后判断条件,直到条件不满足时才退出循环体。示例代码如下:

int main()
{
     int x = 17 ;
     int y = 0 ;
     int z = 5 ;
     do
     {
         y++ ;
         printf("y变为:y=%d",y) ;
     }
     while( z-- >= 0 );
     printf("最终 y 值为:y=%d",y) ;
     return 0;
}
  • 特点:先执行,再判断

(3)for 循环语句

  • for 循环语句结构:for( 表达式1 ; 表达式2 ; 表达式3 )。
  • 表达式 1 通常是为循环变量赋初值,只执行一次。可省略。
  • 表达式 2 通常为循环条件,表示是否继续执行循环体,该判断条件若恒真,则会进入死循环。可省略。
  • 表达式 3 通常为更新循环变量的值,可省略。
  • for 循环常见问题
  • 忘记定义循环变量或对循环变量进行初始化
  • 循环条件的缺少时会造成死循环
  • 循环变量不更新也可能会造成死循环
  • for 循环语句中的分号不可省略

示例代码如下:

int main()
{  
     int i ;
     int sum = 0 ;
     for( i = 0 ; i <= 10 ; i ++)
          sum += i ;
     printf("sum = %d\n",sum);
     return 0;
}
3. 两个控制语句

(1)break 语句(跳出循环体)

  • 格式:break ;(跳出)
  • 功能:终止退出。
  • 常用范围:循环体中和switch

示例代码如下:

// break 语句在循环体中
int main()
{
     int k ;
     int m = 0 ;
     for( k = 0 ; k < 10 ; k++ )
     {
          m ++;
          if( k == 5)
          {
               printf("m =%d",m);
               break;
          }
          printf("m变为:m =%d",m);
     }
     return 0;
}
// break 语句在 switch 语句中
int main()
{
     int choose ;
     printf("请输入 0 或者 1:");
     scanf("%d",&choose);
     switch(choose)
     { 
          case 1 :
             printf("1");
             break;
          case 2 :
             printf("2");
             break;
          default:
             printf("error");
             continue; //选择数字出现错误,跳入 switch 语句中再次进行选择数字
     }
     return 0;
}

(2)continue 语句(不能结束循环体)

  • 格式:continue ;
  • 功能:结束当前循环,继续进行下一次循环,没有跳出循环体,还在当前循环体中,只是进行了下一次循环中。
  • 范围:循环体中。

在 for 循环语句、while/do … while 循环语句中都可以使用 continue 语句,现以 for 循环语句为例,示例代码如下:

int main()
{
     int m ;
     int sum =0 ;
     for( m = 0 ; m <= 20 ; m ++  )
     {
           printf("此时的 m 值为:m =%d",m);
           if( m = 10 )
                continue; //当 m 的值等于10 时,不参加运算,直接进行 for 语句中第 3 部分的 m ++, m 值变为 11 
           sum += m ;
     }
     printf("sum 的和: sum =%d",sum);
     return 0;
}
4. 双循环
  • 组成:由外循环和内循环组成。
  • 语句:while、for、do … while 语句都可构成双循环。
  • 特点:循环的执行情况是先外后内。

示例代码如下:

//双循环打印九九乘法表
int main()
{
     int i ;
     int j ;
	 int k =0;
     for( i = 1 ; i < 10 ; i++ )
     {
         for( j = i ; j < 10 ; j++ )
         { 

			 k = i * j ;
             printf("%d*%d=%d ",i,j,k);
         }
         printf("\n");
     }
     return 0;
}

在这里插入图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白_xm

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值