c语言分支结构

目录

1if语句

if语句的语法:

if....else.....

多条if语句与一条else

 else悬空

f的嵌套

switch语句

switch的语法

break

default

1if语句

if语句的语法:

1    if(表达式)

2    语句

 语法的意思是说:如果表达式为真则执行下面的语句,当表达式为假的时候那么就不会执行语句。

举个例子:

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

可以看出当a<b时则打印出来,如果大于时则不打印。

那a>b时我们想要打印出该怎么办呢?

if....else.....

这时就要用上else了。它与if构成一个语句:if....else.....

这个语句的语法如下:

1   if(表达式)

2   语句1

3   else

4   语句2

这个语法的意思是当表达式为真时执行语句1否则执行语句2

再来看看个例子吧

#include <stdio.h>
int main()
{
   int a = 0;//初始化
   int b = 0;//初始化
   scanf("%d %d",&a,&b);//从键盘上输入2个输入给a和b
   if(a < b)
      printf("a<b");
   else
      printf("a>b");
   return 0;
}

​

这样我们从键盘上输入2个数给a、b如果a大于 b就输出 a>b  a小于b就输出 a<b.

多条if语句与一条else

如果if语句中有多条语句怎么办呢?在c语言中if语句只能控制一个语句要让if语句能控制多条语句就加上花括号{}就行了就像下面一样

1  if()

2  {

3    语句1

4    语句2

5  }

6  else

7    语句4

 else悬空

不仅有if控制多少语句的问题还有else悬空的问题,当有多条if语句只有一条else构成的语句该怎么 办呢?此时记住else与它最近的if构成if....else....的形式,就像下面这样

#include <stdio.h>
int main()
{
   int a = 0;//初始化
   int b = 1;//初始化
  
   if(a == 0)
      printf("hello");
       if(b == 1)
          printf("word");
   else
      printf("x");
   return 0;
}

else只与if(b==1)构成if.....else....这样的形式。不会与第一个if构成

f的嵌套

 在if else语句中,else在后面加上if 构成 else if 来进行多重判断,那应该怎么嵌套呢?举个例子判断一人成长的阶段到小于18到年为少年,18到40为青年,41到59中老年,60往上老年代码如下:

#include <stdio.h>
int main()
{
    int nainling = 0;
    scanf("%d",&nainling);
        if (nainling < 18)
            printf("少年");
        else if (nainling <= 40)
            printf("青年");
        else if (nainling <= 59)
            printf("中老年");
        else 
            printf("老年");
    return 0;
}

switch语句

switch的语法

 switch(整形表达式)

 {case 1:表达式

            break;

  case 2:表达式

            break;

  ....

  default:表达式

            break;

 }

注意case后面必需是整形常量如case1 这个1就是整形常量。

break

break是直接结束的意思,比如一个循环里带了break那么这个循环就结束了,而switch语句中如果没了break那么就会执行case1后再执行case2直到执行到default才结束。来看一下代码

#include <stdio.h>
int main()
{
  int a=0;
  scanf("%d",&a);//从键盘上输入一个数
  switch (a)
  {
    case 1:
         printf("星期一\n");//输入1则打印星期一以此类推
       break;
    case 2:
         printf("星期二\n");
       break;
    case 3:
         printf("星期三\n");
       break; 
    case 4:
         printf("星期四\n");
       break;
    case 5:
         printf("星期五\n");
       break;
    case 6:
         printf("星期六\n");
       break;
    case 7:
         printf("星期天\n");
       break;
    default:
         printf("输入错误请重新输入");
       break;
  }
   return 0;
}

如果没有break那么不管你输入几,那么都会打印后面所有的,如:输入2则打印星期二到星期天。

default

我们在使用switch语句时可能会遇到表达式的值无法匹配case那么这时候就要用到default了,也就是说,如果上面的代码中输入的是8那么一周中没有星期八无法匹配case这时后就会执行default打印出来。

case和default顺序有要求吗?

没有,不过通常把default放在case后面

关于分支结构我就总结到了这里。如果有什么不对的欢迎大家指出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值