C语言:分支语句(if语句、switch语句)

简介: C语言:分支语句(if语句、switch语句)

在此篇文章中,我将为你介绍分支语句。那么,首先有一个问题。

一、什么叫做语句?

C语言中,语句可以分为五大类:

       1. 表达式语句        2. 函数调用语句        3. 控制语句        4. 复合语句        5. 空语句

本篇文章中的以下内容,将介绍 控制语句 —— 用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构 )。


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

1. if语句

       if语句中有两种结构:

单分支

//单分支if语句
if(表达式1)
    语句1;

多分支

//多分支
if(表达式1)
    语句1;
else if(表达式2)
    语句2;
else if(表达式3)
    语句3;
...

if语句如何执行呢?

表达式 为真则执行对应语句;若 为假,则不执行。

0 为假;非0 为真

接下来,为大家展示一个单分支if语句的运行结果。

若想要执行多条语句,则需要用到代码块功能

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

其中  {  }  为一个代码块。

if语句中 比较常见的几个重点问题:

1. 悬空 else

if (a > 5)
  if (a > 7)
    printf("%d", a);
else
  printf("%d", 5 - a);

else 的匹配: else 仅与离它最近的 if 匹配

2. 代码风格

2.1

如上一段代码,由于其糟糕的代码风格,我们很容易将程序的运行结果判断错误

if (a > 5)
{
  if (a > 7)
    printf("%d", a);
  else
    printf("%d", 5 - a);
}

倘若将上一段代码改写成这样,同学们就不大会判断错误了

2.2

//1
if (a = 5)
{
}
//2
if (a == 5)
{
}
//3
if (5 == a)
{
}

如果我们要写一个if语句,判断a是否与5相等时,采用第三种写法,就能够更少出错了


2. switch 语句

switch(a)
{
    case 1:
        语句1;
    case 2:
        语句1;
    case 3:
        语句3;
    ...
}

当我们输入的 a 为 1时,switch语句 将从 case 1 进入;a 为 2时,switch语句 将从 case2 进入;...  , 以此类推。

如果不加操作,当我们将 case 1 中的语句运行完时, switch语句不会自动停止,而是沿着 case 2 、 case 3  一直运行下去。

要避免这种情况,我们需要在语句结束的地方,加入 break ,这样程序就能自动停止。

在这里,我将给出一个程序运行结果,以展示 switch语句的实际效果。

如果我输入的值是与标签值都不匹配怎么办?  

这里,我要再为你们介绍一个关键字 default

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

建议:

在每个 switch 语句中都放一条default子句,甚至可以在后边再加一个 break 。

 


相关文章
|
1月前
|
C语言
初识C语言2——分支语句和循环语句
初识C语言2——分支语句和循环语句
68 5
|
28天前
|
C语言
【c语言】分支语句
C语言通过三种基本结构——顺序、选择和循环,构建复杂的程序逻辑。本文主要介绍了C语言的选择结构,即if-else语句及其变体,包括简单的if语句、if-else组合、else if多分支判断、嵌套if以及解决悬空else问题的方法。此外,还详细讲解了逻辑运算符和关系运算符的使用,以及如何利用条件操作符简化逻辑判断。最后,文章对比了if-else与switch语句在实现多分支逻辑时的应用,并解释了switch语句中的break和default关键字的作用。
30 8
|
1月前
|
Serverless C语言
C语言控制语句:分支、循环和转向
C语言控制语句:分支、循环和转向
|
1月前
|
C语言
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
15 0
|
1月前
|
C语言 C++
C语言 之 内存函数
C语言 之 内存函数
34 3
|
C语言
《C语言及程序设计》实践参考——个人所得税计算器switch语句版
返回:贺老师课程教学链接  项目要求 【项目:个人所得税计算器switch语句版】编写选择结构程序,输入个人月收入总额,计算出他本月应缴税款和税后收入(计算办法见附:关于个人所得税的有关背景知识)。(1)用switch语句完成;(2)可以在下面程序的基本框架基础上完成,如需其他变量自行增加 #include <stdio.h> int main ( ) { double dSa
2210 0
|
8天前
|
C语言
c语言调用的函数的声明
被调用的函数的声明: 一个函数调用另一个函数需具备的条件: 首先被调用的函数必须是已经存在的函数,即头文件中存在或已经定义过; 如果使用库函数,一般应该在本文件开头用#include命令将调用有关库函数时在所需要用到的信息“包含”到本文件中。.h文件是头文件所用的后缀。 如果使用用户自己定义的函数,而且该函数与使用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数做声明。 如果被调用的函数定义出现在主调函数之前可以不必声明。 如果已在所有函数定义之前,在函数的外部已做了函数声明,则在各个主调函数中不必多所调用的函数在做声明
23 6
|
28天前
|
存储 缓存 C语言
【c语言】简单的算术操作符、输入输出函数
本文介绍了C语言中的算术操作符、赋值操作符、单目操作符以及输入输出函数 `printf` 和 `scanf` 的基本用法。算术操作符包括加、减、乘、除和求余,其中除法和求余运算有特殊规则。赋值操作符用于给变量赋值,并支持复合赋值。单目操作符包括自增自减、正负号和强制类型转换。输入输出函数 `printf` 和 `scanf` 用于格式化输入和输出,支持多种占位符和格式控制。通过示例代码详细解释了这些操作符和函数的使用方法。
35 10
|
21天前
|
存储 算法 程序员
C语言:库函数
C语言的库函数是预定义的函数,用于执行常见的编程任务,如输入输出、字符串处理、数学运算等。使用库函数可以简化编程工作,提高开发效率。C标准库提供了丰富的函数,满足各种需求。
|
26天前
|
机器学习/深度学习 C语言
【c语言】一篇文章搞懂函数递归
本文详细介绍了函数递归的概念、思想及其限制条件,并通过求阶乘、打印整数每一位和求斐波那契数等实例,展示了递归的应用。递归的核心在于将大问题分解为小问题,但需注意递归可能导致效率低下和栈溢出的问题。文章最后总结了递归的优缺点,提醒读者在实际编程中合理使用递归。
54 7