C语言分支循环语句

C语言支持顺序、选择和循环三种结构。if和switch用于实现选择结构,while、for和dowhile用于循环。if语句可以根据条件执行相应代码,else与之配合形成分支。switch语句适用于多个可能情况的判断。循环中,while在条件满足时执行循环体,for提供初始化、条件判断和变量更新,dowhile至少执行一次循环体。在switch和循环中,break用于退出当前结构。
摘要由CSDN通过智能技术生成

C语言是结构化的程序设计语言,这里的结构是只顺序结构,选择结构,循环结构。在C语言中能够实现这三种结构的,if、switch实现选择结构,for、while、 do while实现循环结构。

==================================================================================

if 语句

if语句的语法格式为:

    if(表达式)
     语句

if()中,表达式为真,则语句执行。若表达式为假,则语句不执行。
C语言中,非0为真,0为假。如果表达式结果为0,则语句不执行。若表达式为非0,则语句执行。

else的使用

else与if搭配一起使用,表示满足if条件则不执行else,满足else条件则不执行if。

    if(表达式)
    语句1
    else
    语句2

分支中包含多条语句

在默认的情况下,if()语句和else都只控制一条语句。想要控制两条或者多条语句就要使用" {} "括起来。

#include<stdio.h>
int main()
{
    int g=0
    scanf("%d",&g);
    if(g<=6)
    {
        printf("%d小于6\n",&g);
        printf("\n");
    }
    else
    {
      printf("%d大于",g);
       }

if 语句的嵌套

在if语句中,不仅仅只有if-else,else还可以与另一个if语句相连,构成多重判断。

#include <stdio.h>
int main()
{
    int num = 0;
    scanf("%d", &num);
    if(num>0)
    {
        if(num%2 == 0)
        printf("偶数\n");
     else
        printf("奇数\n");
    }
    else
    {
        printf("输⼊的值是负数\n");
    }
 return 0;
}

else 的悬空问题

在代码中如果有多个if 和 else ,else 总是与最近的if语句相匹配。

#include <stdio.h>
 int main()
{
   int a = 0;
   int b = 2;
   if(a == 1)
          if(b == 2)
          printf("hehe\n");
   else
          printf("haha\n");
 return 0;
 }

在这里插入图片描述
上⾯的代码排版,让 else 和第⼀个 if 语句对⻬,让我们以为 else 是和第⼀个if匹配的,当 if
语句不成⽴的时候,⾃然想到的就是执⾏ else ⼦句,打印 haha ,但实际上 else 是和第⼆个 if
进⾏匹配的,这样后边的 if…else 语句是嵌套在第⼀个 if 语句中的,如果第⼀个 if 语句就不
成⽴,嵌套 if 和 else 就没机会执⾏了,最终啥都不打印。
如果代码改成下⾯这样就更加容易理解了

#include <stdio.h>
 int main()
{
   int a = 0;
   int b = 2;
   if(a == 1)
   {
          if(b == 2)
             printf("hehe\n");
          else
             printf("haha\n");
   }
 return 0;
 }

switch 语句

除了if语句外 switch语句有也能够实现分支结构。
switch语句是以中特殊的if-else结构,用来判断有多个结果的情况。

     switch(表达式)
     {
     case 变量1:声明;
     case 变量2:声明;
     default:声明;
     }

上述代码中,根据表达式的不同的值,case 执行相应的分支。若是找不到相应的值,则执行default默认分支。
注意:
switch(表达式) 表示必须为整型表达式
case 后的值,必须是整型常量表达式

switch中的break

在这里插入图片描述
我们能够发现输出的程序本因该只有工作日,但是运行的结果多了“休息日”和“输入错误”。

这是因为 switch语句中的分支效果是有break来实现的,只有在switch语句中使用break才能跳出所谓提出语句。如果case语句后没有break语句,则代码会一直运行下去,可能会其他case语句中的代码,直到遇到break或者switch语句结束。
因此break语句是switch语句实现分支结构的重要条件。

while循环

while语句的语法结构

while语句和if语句的语法结构十分相似。

    while(表达式)
    {
        语句;
     }
while的流程图

在这里插入图片描述

⾸先上来就是执⾏判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执⾏循环语
句,语句执⾏完后再继续判断,是否进⾏下⼀次判断。

while 实例

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

for循环

for语句的语法结构
     for(表达式1;表达式2;表达式3)
     {
           语句;
     }

注:
表达式1 ⽤于循环变量的初始化
表达式2 ⽤于循环结束条件的判断
表达式3 ⽤于循环变量的调整

for循环的流程图

在这里插入图片描述
⾸先执⾏ 表达式1 初始化循环变量,接下来就是执⾏ 表达式2 的判断部分, 表达式2 的结果如果
==0,则循环结束; 表达式2 的结果如果!=0则执⾏循环语句,循环语句执⾏完后,再去执⾏表 达式
3 ,调整循环变量,然后再去 表达式2 的地⽅执⾏判断, 表达式2 的结果是否为0,决定循环是否继
续。
整个循环的过程中,表达式1初始化部分只被执⾏1次,剩下的就是表达式2、循环语句、表达式3在循
环。

for循环实例

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

do while循环

do while语句的语法结构
     do
     {
     语句;
     }while(表达式);
do while语句流程图

在这里插入图片描述
在 do while 循环中先执⾏图上的“语句”,执⾏完语句,在去执⾏“判断表达式”,判断表达式的
结果是!=0,则继续循环,执⾏循环语句;判断表达式的结果==0,则循环结束。
所以在 do while 语句中循环体是⾄少执⾏⼀次的,这是 do while 循环⽐较特殊的地⽅。

do while实例
#include <stdio.h>
int main()
{
  int i = 1;
  do
  {
     printf("%d ", i);
     i = i + 1;
  }while(i<=10);
 
 return 0;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值