初级C语言之【分支语句】(一)

简介: 初级C语言之【分支语句】(一)

🦖作者:学写代码的恐龙

🦖博客主页:学写代码的恐龙博客主页

🦖专栏:【初级c语言】

🦖语录:❀未来的你,一定会感谢现在努力奋斗的自己❀

482cdfdc9d5246c882dd1469afc6f682.png

一:什么是语句?

C语言的语句可以分为以下五类:

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

1.1:表达式语句:

这就是一个表达式语句

2+3;

1.2:函数调用语句:

就是调用了函数的那条语句就是函数调用语句

1.3:控制语句:

控制语句用于控制程序的执行流程,以实现程序的各种结构方式

C语言支持三种结构:

1、顺序结构

2、选择结构

3、循环结构

它们由特定的语句定义符组成,C语言有九种控制语句。

可分为以下三类:

1、条件判断语句也叫分支语句:if语句、switch语句;

2、循环执行语句:do while语句、while语句、for语句;

3、转向语句:break语句、goto语句、continue语句、return语句。

1.4:空语句:

一个;就是一条空语句。

;

二:分支语句(选择结构

2.1:if语句

2.1.1:单分支

if(表达式)
    语句;

如果表达式的值为真,就执行下面的语句,否则什么也不干。

输入19,结果是成年

a21f5930e84545eb8a03f9b1349ce52e.png

输入15,结果什么也没干

699a2170bd904643b6b7e2c55cc0df19.png

2.1.2:双分支

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

如果表达式的值为真,就执行语句1,否则执行语句2

输入19,结果是成年

0c0c5506085f4ae184edabda5ffae0d2.png输入15,结果是未成年


1559737fd99b4460863f91976a055ee2.png

2.1.3:多分支

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

表达式1如果为真,就执行语句1,如果为假,则判断表达式2是否为真,如果为真,就执行语句2,否则就执行语句3.

2.1.4:if语句注意事项

2.1.4.1:关于大括号

if或else语句默认只能控制一条语句,如有多条语句要加大括号。这里的大括号叫做一个代码块。

举个栗子:判断年龄是否成年,并规定只有成年了才能谈恋爱。

如果把代码写成下面这样:

77246ec3e2d5450997c7a0d56069663a.png此时age=20,成年了可以谈恋爱了,程序的运行结果满足我们的预期。

但当我们输入15时,没有成年,就不能谈恋爱,所以程序应该什么都不输出才对,但实际呢??


5cd93ccd27d54bb488649d73ff9b73f0.png

输出了谈恋爱,和我们的预期结果有所不同,说明printf(“谈恋爱\n”);这条语句并没有受到if的控制,无论输入什么年龄这条语句都执行了。

将代码稍作修改,给这两条语句加上大括号,可见此时程序的运行结果满足了我们的预期。

ef5c1356b4bd4c3e94d754a64818eef9.png

2.4.1.2:else的匹配机制

大家看看下面这段代码,猜猜它的执行结果过是什么。

int main()
{
    int a = 0;
    int b = 2;
    if (a == 1)
        if (b == 2)
            printf("hehe\n");
    else
            printf("haha\n");
    return 0;
}

b2356cf1807b44cc82b6ec2f682c3ed6.png

你是不是猜的“haha”呢?,哈哈,很抱歉你猜错了。为什么不是“haha”呢?

原因是:这里的else是和第二个if匹配的,大家不要被else的位置迷惑了,看它和第一个if对其了就以为它是和第一个if匹配。else是就近匹配,和离他最近的那个if匹配。

上面这段代码就等价于下面这段代码:

int main()
{
    int a = 0;
    int b = 2;
    if (a == 1)
    {
        if (b == 2)
            printf("hehe\n");
        else
            printf("haha\n");
    }
    return 0;
}

我们用大括号把后面的一对if和else括起来,这时大家是不是就看的很明白了呢?可见养成一个良好的代码风格是十分重要的。

我们还可以通过加大括号让这个else和第一个if匹配。代码如下:

int main()
{
    int a = 0;
    int b = 2;
    if (a == 1)
    {
        if (b == 2)
            printf("hehe\n");
    }
    else
        printf("haha\n");
    return 0;
}

此时代码打印的结果就是“haha”了。

91ad18b20c1044fe87629a932753c5bb.png


目录
相关文章
|
2月前
|
C语言
C语言之分支结构
C语言之分支结构
34 0
|
2月前
|
Go C语言
爱上C语言:分支与循环(循环篇)
爱上C语言:分支与循环(循环篇)
|
16天前
|
C语言
【C语言基础】:分支与循环
【C语言基础】:分支与循环
|
2月前
|
C语言 数据安全/隐私保护
C语言初阶②(分支语句和循环语句)编程练习
C语言初阶②(分支语句和循环语句)编程练习
37 1
|
7天前
|
C语言
C语言循环与分支
C语言循环与分支
19 5
|
9天前
|
C语言
C语言-----分支和循环
C语言-----分支和循环
43 0
|
2月前
|
C语言
C语言分支与循环
C语言分支与循环
25 2
|
2月前
|
编译器 C语言
C语言(3)----分支和循坏以及操作符
C语言(3)----分支和循坏以及操作符
32 1
|
2月前
|
C语言 数据安全/隐私保护
C语言初阶①(分支语句和循环语句)知识点(下)
C语言初阶①(分支语句和循环语句)知识点
25 1
|
25天前
|
C语言
C语言控制流程详解:分支与循环语句
C语言控制流程详解:分支与循环语句
14 0