c语言初阶 -- 分支语句

简介: c语言初阶 -- 分支语句




 在前两篇已经对c语言已经有了一个初步的了解,在接下来一系列的文章开始上正菜了,我将对c语言展开进行详细的分析。今天要学习的是分支语句。

一,什么是语句

我们学习分支语句首先得了解什么是语句。

C语句可分为以下五类:

1. 表达式语句

2. 函数调用语句

3. 控制语句

4. 复合语句

5. 空语句

选择语句就是属于控制语句,控制语句主要用于控制程序的执行流程,实现程序的各种结构方式,c语言是一种结构化的程序设计语言(c语言支持顺序结构,选择结构,循环结构)。

二,分支语句(选择结构)

条件判断语句也叫分支语句,主要有两种写法(if语句,switch语句)

    大家在日常生活中都是怎么度过的呢?肯定不会是日复一日按照同样的生活方式度过吧,我们可以通过某种判断来决定自己的行动。比如说今天下雨我们就要带上伞。

  或者说我们考上大学之后,不好好学习就要回家种地,如果好好学习在校招时就会拿到一个好的offer,这里就面临了两种选择。

在生活中处处面临这选择,会通过我们自己的选择而改变这些事情的结果。

那c语言如何实现这种选择呢?请看下文

三,if语句

 为了实现这个选择,在c语言中提供了if语句。

if语句基本用法

if(表达式)
{
    语句;
}

注:如果表达式成立,就执行语句。

if(表达式)
{
    语句1;
}
else
{
   语句2;
}

注:如果表达式成立就执行语句1,不成立就执行语句二。

if(表达式1)
{
   语句1;
}
else if(表达式2)
{
  语句2;
}
else
  语句三;

 注:表达式1成立,执行语句1。

         表达式2成立,执行语句2。

         都不成立执行表达式3。

用if语句判断一个人是否成年

总结来说,如果要执行多条语句,就判断条件是否成立,成立就执行对应的代码块。

一对 { } 就是一个代码块

3.1悬空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;
}

在我第一眼看到这个代码的时候我认为会打印haha,但是这段代码什么都不会打印

这里涉及到了一个if语句嵌套的问题, 在这种场景下else会找离他最近的if进行匹配,而不是找和他对齐的if进行匹配。

建议在自己写代码的时候加上括号,当然有时候题目会有这种坑。

3.2if语句的应用

判断一个一个数是不是奇数

#include <stdio.h>
int main()
{
  int n = 0;
  scanf("%d", &n);
  if (n % 2 == 0)
  {
    printf("是奇数");
  }
  else
  {
    printf("不是奇数");
  }
}

四,switch语句

有这么一个场景,输入一个数字,输出对应是星期几,需要n多条分支语句。用if语句能不能实现?

当然能实现,但是用这种方法似乎不太方便,形式太复杂了。

在这种背景下就引入了,switch语句,用于多分支语句。

代码如下:

#include <stdio.h>
int main()
{
  int day = 0;
  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(整型表达式)
{
  语句项;
}

那语句项是什么呢?

就是一些case子句,如下

case 整形常量表达式:

 语句;

会根据整形表达式的值执行相匹配的case语句,例如:如果day是1,就会在屏幕上打印星期一。

2.1介绍break语句

break是停止结束的意思。

在switch语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支。

看下面这段代码,应该能应该能体现出break的作用。

int main()
{
    int a=1;
    int b;
    switch (a)
    {
        case 1: b = 30;
        case 2: b = 20;
        case 3: b = 16;
        default: b = 0;
    }
    return 0;
}

这个代码的运行结果是0,程序没有遇到break就会一直往下运行,b的值会改变。

当程序遇到break,就会跳出将他围起来的switch语句。

总结:case是入口,break是出口。

2.2default子句

default是默认的意思。

输入的值没有与之匹配的case语句,程序该怎么办呢?会出错?

这个时候就可以加一条default语句了,像这样。

注:语法原则上,default可以写在任何位置。

    在switch语句中default只能出现一个。

目录
相关文章
|
1月前
|
C语言
初识C语言2——分支语句和循环语句
初识C语言2——分支语句和循环语句
65 5
|
17天前
|
C语言
【c语言】分支语句
C语言通过三种基本结构——顺序、选择和循环,构建复杂的程序逻辑。本文主要介绍了C语言的选择结构,即if-else语句及其变体,包括简单的if语句、if-else组合、else if多分支判断、嵌套if以及解决悬空else问题的方法。此外,还详细讲解了逻辑运算符和关系运算符的使用,以及如何利用条件操作符简化逻辑判断。最后,文章对比了if-else与switch语句在实现多分支逻辑时的应用,并解释了switch语句中的break和default关键字的作用。
26 8
|
1月前
|
Serverless C语言
C语言控制语句:分支、循环和转向
C语言控制语句:分支、循环和转向
|
5月前
|
C语言
C语言初阶:如何判断是否为素数并且输出
C语言初阶:如何判断是否为素数并且输出
43 0
|
1月前
|
算法 编译器 C语言
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
|
5月前
|
C语言
【C语言基础】:分支与循环
【C语言基础】:分支与循环
|
27天前
|
C语言
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
14 0
|
1月前
|
程序员 C语言
【C语言】分支语句(逻辑运算符与关系运算符)
【C语言】分支语句(逻辑运算符与关系运算符)
|
3月前
|
C语言
【C语言篇】分支语句详解(超详细)
在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要顺序是满⾜实际需求的就可以。 不过我们通常是把 default ⼦句放在最后处理的。
47 2
|
3月前
|
C语言
C语言分支语句
C语言分支语句
29 4