c语言三大语句结构:顺序结构、选择结构、循环结构

1.顺序结构:按语句出现的先后顺序,依次执行

2.选择结构(也叫分支结构):根据所给定的条件选择是否执行。

选择结构分为单分支和多分支。

单分支:

if(条件表达式)//表达式为真(非零),执行语句块1

{

语句块1;//若语句块只有一句,其前后{}可省略。若为多句不加{},只有第一句属于if

}

else    //else前必须要有if与之对应,且遵循就近原则(与最近的if配对),但if不一定有else

{

语句块2;//表达式为假,执行语句块2

}

例1:有两个整数A,B,求出最大值

{
  int A=3;
  int B=4;
  int max=0;
if(A>B)
{
  max=A;   //前后{}可省略
}
else
{
 max=B;    //前后{}可省略
}
}

if语句表示多分支:

//根据实际需求确定if后是否需要else,但else存在就必有if与之对应,且就近匹配

if(条件表达式1)

{

    语句块1;//表达式1为真执行语句块1

}

else if(条件表达式2)//1为假判断表达式2

    {

         语句块2;//表达式1为假,表达式2为真执行语句块2

     }

......//中间可有多个else if ,看实际需求,此处举例一个else if的情况

    else    //与if(表达式2)匹配

   {

       语句块3; //表达式1为假,2为假执行语句块3

   }

例2:有三个整数A,B,C,求出最大值

{
int A=3;
int B=4;
int C=2;
int max =0;
if(A>B)
  {
   max=A;
  }
  else if(B>C)
     {
      max =B;
     }
     else
       {
        max=C;
       }
}

switch语句表示多分支:

switch(表达式)         //表达式的结果作为case的判断条件
{
    case 常量表达式1:  //一定是一个整数或常量表达式(计算结果为整数),不可为范围
        语句块1;

         break;//满足表达式1,break跳出switch,若无break语句会顺序执行后面的语句直  到遇到下一个break跳出
    case 常量表达式2:
        语句块2;
        break;
        ....//可有多个case
    default:   //若所有的case都满足,则执行语句块3,defuault可省略,即所有case不满足不作任何操作
        语句块3;
        break;   

}

例3  :输入一个学生的成绩,0-59为F,60-69为D,70-79为C,80-89为B,90-99为A,100为A+

{
int grade=0;
printf("请输入一个0-100的整数\n");  
scanf("%d",&grade); //输入一个整数,并将其赋值给grade
swith(grade/10)    //求grade的十位上的值,并将结果作为case的判断条件
{
case 6; printf("D\n");break;  
case 7; printf("C\n");break;
case 8; printf("B\n");break;
case 9; printf("A\n");break;
}
default:
if(grade==100)   //判断是否为100分
printf("A+\n");  
else
printf("F\n")
break;
}

3.循环结构:for循环,while循环(可能一次也不执行),do  while循环(至少执行一次)

 例4:输出1-10

for(表达式1;表达式2;表达式3)
{
    语句块;  //当表达式2满足时,执行语句块
}

表达式1:循环变量的初始化,在整个for循环过程中,只第一次进入for循环的时候执行(只执行一次)
表达式2:循环的判断条件
表达式3:循环变量的自增或自减

step1:执行表达式1
step2:判断表达式2,如果表达式2的值为真(非0),则执行语句块
step3:执行表达式3,回到step2直到表达式2的值为假结束循环

for循环可嵌套使用

  for(表达式1;表达式2;表达式3)
     {
        for(表达式4;表达式5;表达式6)    //作为语句块嵌套在第一个for中,其前后也可添加语句
          {
                语句块2;
          }
     }

{
  for(int i=0;i<=10;i++)
   {
    printf("%d ",i);
   }
}

 while() ---当型循环


whlie(表达式)   //当表达式为真时,执行语句块
{
    语句块;
}

step1:判断表达式,如果表达式的值为真(非0),则执行语句块,
step2:语句块执行完之后,回到step1,直到表达式的值为假(0)则退出循环

{
int i=0;
  while(i<=10)
  {
   printf("%d ",i);
   i++;
  }
}

do  while() ---直到型循环
do
{
    语句块;
    
}
while(表达式);

step:先执行语句块,然后判断表达式,如果表达式的值为真(非0),则继续执行语句块
     直到表达式的值为假(0)循环结束。

{
 int i=0;
 do{
    printf("%d ",i);
    i++;
    } 
 while(i>10);
}

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值