服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C语言实例讲解选择语句的使用

C语言实例讲解选择语句的使用

2022-11-22 12:25嵌入式宇宙 C/C++

选择语句是C语言中的重要组成部分,该部分也比较基础,本文将通过最通俗易懂的方式来为大家做出讲解。相信通过本文的学习,让大家一举拿下C语言选择语句的知识点

一、if…else选择语句详解

1. 图示if…else流程

C语言实例讲解选择语句的使用

        用图示来表示 if…else 语句其实就是当条件为真的时候执行某一部分的内容,当条件为假的时候就跳过这部分的内容接着往下执行。

2. if…else代码流程

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

        if…else语句最常见的流程就是上面这样。当表达式为真的时候执行语句块1的内容,当表达式为假的时候执行语句块2的内容。那么可能有些人就会问了,表达式什么样才是真,什么样才是假?回答这个问题很简单,只要表达式的结果为0,那么表达式就是假,其余情况都是真。

3. if…else的三种情况

3.1 if语句

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

当只有 if 的时候,表达式为真就执行语句块1,否则就跳过语句块的内容。

3.2 if…else语句

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

当 if…else 的时候,表达式为真就执行语句块1,表达式为假就执行语句块2。

3.3 if…else if…else语句

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

       当表达式1为真的时候就只执行语句块1的内容,其余语句块不执行。当表达式1为假并且表达式2为真的时候就只执行语句块2的内容,其余语句块不执行。当表达式1和表达式2都为假的时候执行语句块3的内容,其余语句块不执行。在这种情况下,else if是可以无限加的,并不是只能有一个else if。

       需要注意的是else不可以单独出现,if可以单独出现,并且else总是和它同级的那个if 相匹配。

4. 代码示例

源代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
int main()
{
    int scores = 0;
    printf("Please enter student scores: ");
    scanf("%d", &scores);
    if (scores < 0) {
        printf("input error\n"); 
    } else if (scores < 60) {
       printf("Underachievement!\n");
    } else if (scores < 80) {
        printf("academically qualified!\n");
    } else if (scores <= 100) {
        printf("perfect grade!\n");
    } else {
        printf("input error\n");
    }
    return 0;
}

二、三目运算符(? :)详解

表达式1 ? 表达式2 : 表达式3 

三目运算符是一个运算符,并且C语言中有且只有一个三目运算符。使用三目运算符可以用来代替 if…else 语句。上面三目运算符的流程为,如果表达式1为真,则将表达式2的结果作为最终运算结果,否则就将表达式3的结果作为最终运算结果。举例例子具体说明下:

源代码:

?
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
int main()
{
    int a = 0, b = 0, max = 0;
    printf("请输入两个数: ");
    scanf("%d%d", &a, &b);
    max = a > b ? a : b;
    printf("两数中较大的数是: %d", max);
    return 0;
}

三、switch…case选择语句详解

1. 图示switch…case流程

C语言实例讲解选择语句的使用

       switch…case语句就是,如果表达式1的 结果和下面的表达中任意一个表达式相等,就执行对应的代码块的内容,而其余代码块中的内容不会被执行。

2. switch…case代码流程

    switch(表达式1)
    {
        case 表达式2:
            语句块2;
            break;
        case 表达式3:
            语句块3;
            break;
        case 表达式4:
            语句块4;
            break;
        ……
        default:
            语句块n;
            break;
    }

       switch…case语句在代码中的流程一般如上所示。其中表达式1的结果一般是整形常量或字符常量。当表达式的结果和 case 后面的表达式结果一致时,就会执行对应的语句块的内容,否则,就会进入default中,执行语句块n 。然后在break的时候跳出大括号的内容。

在使用 switch…case 语句时有两点需要大家特别注意。

  • 如果语句块后面没有break,那么程序就会继续执行下面的内容,直到遇到下一个break或后面没有内容时而退出。比方说,表达式1和表达式3的结果相同,程序就会执行语句块3的内容,如果有上面的break,switch…case 语句到此结束,直接跳出 switch 大括号中的所有内容。但是如果这个没有break,那么程序执行完语句块3后还会接着执行语句块4,直到遇到 break 或 switch 大括号后面没有内容而退出。
  • 在 switch…case 语句中,default 和 case 的位置没有关系,编译器都会先找 case,等 case 不满足条件之后才会找 default。因为一些常规和标准的写法 default 都会在最后面,但是在面试笔试中为了考察大家对于 switch…case 语句的掌握程度,会将 default 写在开头或中间,所以这个时候大家就要特别注意了。

3. 代码示例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
int main()
{
    int scores = 0;
    char grade = 'Z';
    printf("Please enter student scores: ");
    scanf("%d", &scores);
    if (scores < 0) {
        printf("input error\n"); 
    } else if (scores < 60) {
        grade = 'C';
    } else if (scores < 80) {
        grade = 'B';
    } else if (scores <= 100) {
        grade = 'A';
    } else {
        printf("input error\n");
    }
    switch(grade)
    {
        case 'A':
            printf("perfect grade!\n");
            break;
        case 'B':
            printf("academically qualified!\n");
            break;
        case 'C':
            printf("Underachievement!\n");
            break;
        default:
            printf("input error\n");
            break;
    }
    return 0;
}

到此这篇关于C语言实例讲解选择语句的使用的文章就介绍到这了,更多相关C语言选择语句内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/liung_/article/details/123023524

延伸 · 阅读

精彩推荐
  • C/C++C++中const应放在类型前还是后

    C++中const应放在类型前还是后

    之前遇到小伙伴问C++中const加在类型名前和变量名前的区别,今天给大家简单分析下。...

    C++教程网11802021-04-01
  • C/C++Python扩展C/C++库的方法(C转换为Python)

    Python扩展C/C++库的方法(C转换为Python)

    这篇文章主要介绍了Python扩展C/C++库的方法(C转换为Python),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考...

    Boys_Wu5182021-09-29
  • C/C++详解Dev C++使用教程(使用Dev C++编写C语言程序)

    详解Dev C++使用教程(使用Dev C++编写C语言程序)

    这篇文章主要介绍了详解Dev C++使用教程(使用Dev C++编写C语言程序),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,...

    C语言中文网6342021-10-27
  • C/C++解析C++多文件编程问题

    解析C++多文件编程问题

    在某些场景中,考虑到编译效率和可移植性,#pragma once 和 #ifndef 经常被结合使用来避免头文件被 重复引入,这里介绍用 _Pragma 操作符避免头文件重复引入...

    人生有迹11882022-02-16
  • C/C++C语言数据结构实现银行模拟

    C语言数据结构实现银行模拟

    这篇文章主要介绍了C语言数据结构实现银行模拟的相关资料,通过此文希望大家能理解离散化的方法,希望能帮助到大家,需要的朋友可以参考下...

    杨鑫newlfe8182021-05-29
  • C/C++C语言数据结构哈希表详解

    C语言数据结构哈希表详解

    哈希表是一种根据关键码去寻找值的数据映射结构,该结构通过把关键码映射的位置去寻找存放值的地方,说起来可能感觉有点复杂,我想我举个例子你就...

    橙子@C9852022-10-08
  • C/C++VC文件目录常见操作实例汇总

    VC文件目录常见操作实例汇总

    这篇文章主要介绍了VC文件目录常见操作实例汇总,总结了VC针对文件目录的各种常用操作,非常具有实用价值,需要的朋友可以参考下...

    C语言教程网10342021-02-18
  • C/C++C语言浮点函数中的modf和fmod详解

    C语言浮点函数中的modf和fmod详解

    这篇文章主要为大家详细介绍了C语言浮点函数中的modf和fmod,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望...

    嵌入式@hxydj12382022-09-26