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 。

 


相关文章
|
2月前
|
C语言
【C语言篇】分支语句详解(超详细)
在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要顺序是满⾜实际需求的就可以。 不过我们通常是把 default ⼦句放在最后处理的。
|
2月前
|
C语言
C语言分支语句
C语言分支语句
24 4
|
4月前
|
C语言
C语言循环与分支
C语言循环与分支
40 5
|
3月前
|
存储 编译器 C语言
c语言选择结构的switch语句的细节
c语言选择结构的switch语句的细节
|
4月前
|
C语言
C语言条件判断:if、else、else if 和 switch 详解
C语言条件判断:if、else、else if 和 switch 详解
|
4月前
|
C语言
C语言-----分支和循环
C语言-----分支和循环
|
C语言 CDN
《C语言及程序设计》程序阅读——if语句的嵌套
返回:贺老师课程教学链接  【阅读程序】阅读程序,写出下面两个程序的输出结果(1) #include <stdio.h> int main ( ) { int a=1,b=2,c=3; if(a<=c) if(b==c) printf("a = %d\n", a); else pr
918 0
|
C语言
C语言及程序设计初步例程-24 if语句的嵌套
贺老师教学链接  C语言及程序设计初步 本课讲解 应用:分段函数求解好程序 #include <stdio.h> int main() { float x, y; scanf("%f", &x); if(x<2) { y=x; } else if(x<6) { y=x*x+1
1119 0
|
23天前
|
存储 Serverless C语言
【C语言基础考研向】11 gets函数与puts函数及str系列字符串操作函数
本文介绍了C语言中的`gets`和`puts`函数,`gets`用于从标准输入读取字符串直至换行符,并自动添加字符串结束标志`\0`。`puts`则用于向标准输出打印字符串并自动换行。此外,文章还详细讲解了`str`系列字符串操作函数,包括统计字符串长度的`strlen`、复制字符串的`strcpy`、比较字符串的`strcmp`以及拼接字符串的`strcat`。通过示例代码展示了这些函数的具体应用及注意事项。
|
26天前
|
存储 C语言
C语言程序设计核心详解 第十章:位运算和c语言文件操作详解_文件操作函数
本文详细介绍了C语言中的位运算和文件操作。位运算包括按位与、或、异或、取反、左移和右移等六种运算符及其复合赋值运算符,每种运算符的功能和应用场景都有具体说明。文件操作部分则涵盖了文件的概念、分类、文件类型指针、文件的打开与关闭、读写操作及当前读写位置的调整等内容,提供了丰富的示例帮助理解。通过对本文的学习,读者可以全面掌握C语言中的位运算和文件处理技术。