分支语句及其应用

简介: 分支语句及其应用

       在之前我给大家讲解了关于循环语句及其应用,想要学习的小伙伴可以点击循环语句及其应用_steventom的博客-CSDN博客,进行学习。今天我们主要学习的是另外一种语法——分支循环及其应用,它主要包括if语句switch语句。分支语句是我们常用的语句,因此学会它非常重要。

1.if语句

1.1单分支语句

单分支语句主要就是if...else,我们可以写一个代码来感受一下,代码如下:

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

       这个代码就是我们的单分支语句,我们先输入一个n,然后对n进行判断如果n大于等于18执行

printf(“成年\n”)语句,否则执行printf(“未成年\n”)语句。

1.2多分支语句

       当我们面对一个问题时,有时候会出现多个解决方案,这时候就需要多分支语句,它主要就是if...else if...else if...else(else if),我们可以写一个代码来感受一下,代码如下:

#include <stdio.h>
int main()
{
  int n;
  scanf("%d", &n);
  if (n < 18)
    printf("未成年");
  else if (n >= 18 && n <= 25)
    printf("青年");
  else if (n > 25 && n <= 35)
    printf("壮年");
  else if (n > 35 && n <= 50)
    printf("中年");
  else if (n > 50 && n <= 80)
    printf("老年");
  else if (n > 80)
    printf("老寿星");
}

首先,通过scanf("%d", &n)获取用户输入的年龄。

然后,使用一系列的if else语句来判断年龄范围并输出相应的信息。其中:

  • 如果年龄小于18岁,则输出“未成年”;
  • 如果年龄在18岁到25岁之间,则输出“青年”;
  • 如果年龄在25岁到35岁之间,则输出“壮年”;
  • 如果年龄在35岁到50岁之间,则输出“中年”;
  • 如果年龄在50岁到80岁之间,则输出“老年”;
  • 如果年龄大于80岁,则输出“老寿星”。

最终,使用printf()函数将输出信息显示在屏幕上。

1.3注意

对于if语句我们有几点需要注意:

1.不管是if还是else还是else if它的后面只能跟一条语句,如果想过很多条语句就必须用大括号括起来,形成一个语句块,例如代码如下:

#include <stdio.h>
int main()
{
  int n = 10;
  if (n == 10)
  {
    printf("%d\n", n);
    n++;
    printf("%d\n", n);
  }
}

当我们运行后我们可以看到:

2.else语句遵循就近原则,它也总是和距离最近的没有和else组队的if进行结合,代码如下:

#include <stdio.h>
int main()
{
  int n = 10;
  if (n > 20)
    if (n > 30)
      printf("hehe");
  else
    printf("haha");
  return 0;
}

       其中的else和他的上一个if组合也就是说它和if(n>30)进行组合,对于输出结果,由于n等于10不满足n大于20,故不会进入分支中,什么也不会输出。

注意非常重要,希望各位小伙伴们可以仔细阅读。

2.switch语句

有时候我们需要写一个程序,但是if语句会很复杂,这时候我们可以使用switch语句,而在switch语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支。例如代码:

#include <stdio.h>
int main()
{
  int day = 0;
  scanf("%d", &day);
  switch (day)
  {
  case 1:
      printf("星期一\n");
      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;
  }
  return 0;
}

当我们使用switch语句时会变得很简单。注意在switch(day)中day必须是整形,否则不能执行如果表达的值与所有的case标签的值都不匹配怎么办?

其实也没什么,结构就是所有的语句都被跳过而已。

程序并不会终止,也不会报错,因为这种情况在C中并不认为是个错误。

但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?

你可以在语句列表中增加一条default子句,把下面的标签

default:

写在任何一个 case 标签可以出现的位置。

当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。

所以,每个switch语句中只能出现一条default子句。

但是它可以出现在语句列表的任何位置,而且语句流会像执行一个case标签一样执行default子句。

我们只需要再增加一条语句

今天的讲解到此结束,希望大家可以一键三连。

目录
相关文章
|
4月前
|
Go C语言
分支语句与循环语句,详细讲解
分支语句与循环语句,详细讲解
|
5月前
|
Python
phython单分支if语句
phython单分支if语句
|
2月前
|
编译器 C语言
语句、分支与循环详解
语句、分支与循环详解
|
11月前
|
编译器 C语言 C++
分支语句和循环语句上
分支语句和循环语句
52 0
分支语句和循环语句上
|
10月前
|
数据安全/隐私保护 C语言
分支语句与循环语句(2)
分支语句与循环语句(2)
55 0
|
11月前
|
算法 数据安全/隐私保护
分支语句与循环语句——练习
分支语句与循环语句——练习
44 0
|
11月前
|
缓存 Go 数据安全/隐私保护
分支语句和循环语句下
分支语句和循环语句
72 0
|
12月前
|
数据安全/隐私保护
【分支语句与循环语句】
【分支语句与循环语句】
46 0
|
缓存 数据安全/隐私保护 C语言
S2-分支语句和循环语句(2)上
S2-分支语句和循环语句(2)