爱上C语言:分支与循环(分支篇)多个if与if — else if区别

简介: 爱上C语言:分支与循环(分支篇)多个if与if — else if区别

if语句

1.单分支if

  • 单分支if的语法结构
if(表达式)
{
  代码块 code;
}

这里我使用流程图的方式为大家展示

#include<stdio.h>
int main()
{
//单分支
  int age = 0;
  scanf("%d", &age);
  if (age >= 18)
  {
    printf("成年\n");
  } 
  return 0;
  
}

计算机在处理if语句时,一般要先判断if()中表达式的真假再执行下一步

那计算机是如何判断真假的呢?

计算机将0判断为假,将非0判断为真

例如,上述代码中如给age输入8,则age >= 18为假,就不会执行if里面的语句,从而不会打印成年


2.多分支if语句

  • 多分支if语法结构
if(表达式)
{
  代码块 code;
}
else if(表达式)
{
  代码块 code;
}
else if(表达式)
{
  代码块 code;
}
......
else
{
  代码块 code;
}

如同人生不止一个选择,同样的if语句也有多个分支

int main()
{
  int age = 0;
  scanf("%d", &age);
  if (age >= 18)
  {
    printf("成年\n");
  }
  else
  {
    printf("未成年\n");
  }
  return 0;
}

简单解释一下,上述代码如若if中表达式为真则执行if内语句为假则执行else内语句

上面呢仅仅是双分支,当然你也可以无限套娃

int main()
{
  int age = 0;
  scanf("%d", &age);
  if (age >= 18 && age < 35)
  {
    printf("成年\n");
  }
  else if (age >= 35 && age < 60)
  {
    printf("中年\n");
  }
  else if (age >= 60 && age < 90)
  {
    printf("老年\n");
  }
  else if (age >= 90)
  {
    printf("老寿星\n");
  }
  else
  {
    printf("未成年\n");
  }
}

3.多个if与if – else if 区别

细心的小伙伴已经发现这个标题不一般,没错这个是重点

这里我用代码为大家解惑

在上述多个if代码中,给age输入23屏幕上既打印了青少年又打印了成年

而在if-- else if 代码又是如何呢?我们接着往下看

if-- else代码中我们依然给age输入23,与多个if不同的是它仅仅打印了青少年

第一次的时候我也懵逼了,其实呢在多个if语句中计算机会每一个if语句都判断一下,只要条件为真if后面的语句都会执行,而在if-- else if语句中只要一个else if判断为真,其后面所有的else if 语句都不会在判断了


switch 语句

在C语言中并非只有if语句是分支语句,它还提供了switch语句

if语句在分支过多情况下用起来极为不便,而switch语句则弥补了这一缺点

  • switch的语法结构
switch(表达式)
  { 
      case 常量表达式1:  语句1;
      case 常量表达式2:  语句2;
      …… 
      case 常量表达式n:  语句n;
      default:  语句n+1;
  }

注意:

  • switch后面只能跟整形表达式
  • case后面只能跟整形常量表达式

当a的值与case后的值一样时,就执行对应case后的语句

#include<stdio.h>
int main()
{
  int a = 0;
  scanf("%d", &a);
  switch (a)
  {
  case 1:
    printf("星期一\n");
  case 2:
    printf("星期二\n");
  case 3:
    printf("星期三\n");
  case 4:
    printf("星期四\n");
  case 5:
    printf("星期五\n");
  case 6:
    printf("星期六\n");
  case 7:
    printf("星期天\n");
  default://当没有找到入口,就走这一条
    printf("输出错误\n");
  }
  return 0;
}

运行上述代码

你会发现输出的结果并非所愿,这是因为当程序从case 3:进去后并没有跳出switch语句,这个时候你就需要break的帮助了

是不是输出想要的答案了😄

✌️一些见解

  • if,else if以及else后语句尽量用{ }括起来
  • else总是与它最近的if相对应
  • case语句后面记得跟break
相关文章
|
28天前
|
C语言
C语言中的exit与return的区别
C语言中的exit与return的区别
|
1月前
|
C语言
利用C语言中的while语句实现循环
利用C语言中的while语句实现循环
18 0
|
1月前
|
存储 程序员 C语言
c语言的if语句举例
c语言的if语句举例
13 0
|
1月前
|
C语言
介绍c语言中的分支,循环
介绍c语言中的分支,循环
22 0
|
21小时前
|
C语言
【精通C语言】:分支结构if语句的灵活运用
【精通C语言】:分支结构if语句的灵活运用
8 1
|
5天前
|
C语言
if语句的应用(C语言零基础教程)
if语句的应用(C语言零基础教程)
|
23天前
|
存储 搜索推荐 编译器
【C语言】一篇文章深入解析联合体和枚举且和结构体的区别
【C语言】一篇文章深入解析联合体和枚举且和结构体的区别
|
26天前
|
C语言
【C语言】“分⽀与循环第一章:开启创新之门,探索无尽可能性的第一篇章“2
【C语言】“分⽀与循环第一章:开启创新之门,探索无尽可能性的第一篇章“2
|
1月前
|
存储 程序员 C语言
c语言中的if语句
c语言中的if语句
9 0
|
1月前
|
安全 Unix Linux
【C/C++ 字符串】探索C语言之字符串分割函数:strtok和strsep的区别
【C/C++ 字符串】探索C语言之字符串分割函数:strtok和strsep的区别
16 0