C语言switch 语句的用法详解

C语言switch语句的用法详解

什么是switch语句?

switch语句是一种用于对变量或表达式进行多路分支的语句,它会根据指定的表达式的值来执行相应的语句代码块。

switch语句通常被用于与if语句类似的场合,但是switch语句通常更加简洁明了。其基本格式如下:

switch(expression)
{
    case constant1:
        /* statement(s) */
        break;
    case constant2:
        /* statement(s) */
        break;
    case constant3:
        /* statement(s) */
        break;
    /* 以此类推,可以有任意多个case */
    default:
        /* statement(s) */
}

以上代码中,expression表示要进行判断的表达式或变量,constant1、constant2等表示该表达式或变量可能的取值,case保留字用来判断表达式或变量的取值是否与某种情况匹配。

switch语句的执行过程

当程序执行到switch语句时,首先计算表达式的值,然后将这个值与每个case后面的取值进行比较,如果匹配成功,则执行该case后面的语句,否则继续匹配下一个case,如果最终没有匹配成功,则执行default后面的语句。

需要注意的是,每个case后面必须要有一个break语句,否则会出现“穿透”现象,即无论表达式或变量的取值与哪个case匹配成功,后面所有的case语句都会被执行,直到遇到break语句为止。

switch语句的示例

示例1:判断成绩等级

#include <stdio.h>

int main(void)
{
    int score = 85;
    char grade;

    switch(score / 10)
    {
        case 10:
        case 9:
            grade = 'A';
            break;
        case 8:
            grade = 'B';
            break;
        case 7:
            grade = 'C';
            break;
        case 6:
            grade = 'D';
            break;
        default:
            grade = 'E';
            break;
    }

    printf("你的成绩等级为:%c\n", grade);

    return 0;
}

以上代码中,我们通过计算score和10的商来判断成绩等级。如果score的取值为85,则score/10的值为8,因此程序会执行case 8后面的语句,grade的取值为'B'。

示例2:判断月份天数

#include <stdio.h>

int main(void)
{
    int month = 2;
    int days;

    switch(month)
    {
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            days = 31;
            break;
        case 4:
        case 6:
        case 9:
        case 11:
            days = 30;
            break;
        case 2:
            days = 28;
            break;
        default:
            printf("您输入的月份不正确\n");
            return 0;
    }

    printf("%d月的天数为:%d\n", month, days);

    return 0;
}

以上代码中,我们利用switch语句来根据月份判断该月的天数。如果month的取值为2,则程序会执行case 2后面的语句,days的取值为28。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言switch 语句的用法详解 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 基于jquery自定义的漂亮单选按钮RadioButton

    下面我将详细讲解基于 jQuery 自定义的漂亮单选按钮 RadioButton 的完整攻略。 环境准备 在开始前,需要准备以下软件和库文件: jQuery Font Awesome HTML / CSS / JavaScript 编辑器 HTML 结构 首先,我们需要定义一组单选框,每个单选框对应一个选项,然后为每个单选框绑定一个唯一的 ID 用于后续的操…

    other 2023年6月27日
    00
  • python–判断路径是否为目录或文件

    python–判断路径是否为目录或文件 在Python中,我们经常需要判断给定的路径是目录还是文件,以便根据不同的情况进行后续的操作。本文将介绍如何使用Python的内置模块来判断给定的路径是目录还是文件。 os模块 Python的内置模块os提供了很多文件和文件夹操作函数,其中包括判断路径是否为目录或文件的函数。 isdir() isdir()函数用于判…

    其他 2023年3月29日
    00
  • 安装mysql报requires:libc.so.6(glibc_2.17)(64bit)

    安装MySQL报错:requires: libc.so.6(glibc_2.17)(64bit) 在安装 MySQL 的过程中,你可能会遇到这样的错误提示:requires: libc.so.6(glibc_2.17)(64bit)。这个错误提示通常是由于系统缺少或者版本不匹配了 glibc 库所导致的。这篇文章将会帮助你解决这个问题。 原因分析 在 Lin…

    其他 2023年3月28日
    00
  • css实现垂直居中6种方法

    以下是详细讲解“CSS实现垂直居中6种方法”的完整攻略,过程中包含两个示例说明: CSS实现垂直居中6种方法 在Web开发中,垂直居中是一个常的需求。本攻略将介绍CSS实现垂直居中的6种方法,包括基本概念、使用方法和两个示例说明。 基本概念 在CSS中,垂直居中是指将一个元在垂直方向上居中对齐。实现垂直居中的方法有很多种,包括使用flex布局、使用table…

    other 2023年5月10日
    00
  • C++模拟实现JDK中的ArrayList和LinkedList

    C++模拟实现JDK中的ArrayList和LinkedList 介绍 在Java语言中,ArrayList和LinkedList是两种常见的List集合实现方式。ArrayList底层基于动态数组实现,适用于随机访问元素,但插入和删除操作效率较低。LinkedList底层基于双向链表实现,适用于频繁插入和删除操作,但访问元素效率较低。 本篇文章将介绍如何使…

    其他 2023年3月28日
    00
  • libevent源码深度剖析七

    libevent源码深度剖析七 在本篇文章中,我们将继续深入分析libevent源码,重点探讨libevent中的事件机制。 事件机制 libevent中的事件机制使用了事件循环(event loop)和事件处理器(event handler),来帮助程序处理输入和输出(I/O),以及其他事件。当输入事件被触发,例如一个客户端连接到服务器,就会调用相应的事件…

    其他 2023年3月29日
    00
  • mysqldump下载

    以下是关于如何使用mysqldump下载MySQL数据库的详细攻略: 步骤一:安装MySQL 在使用mysqldump下载MySQL数据库之前,您需要先安装MySQL。您可以从MySQL官网下载MySQL安装程序按照安装程序的指示进行安装。 步骤二:打开命令行 在Windows上,您可以按下Win+R键打开行对话框,后输入“cmd”并按下Enter键打开命令…

    other 2023年5月7日
    00
  • AngularJS递归指令实现Tree View效果示例

    下面就详细讲解一下“AngularJS递归指令实现Tree View效果示例”的攻略。 1. 背景介绍 Tree View,即树形视图,是一种常用的数据展示方式,通常用于展示多层级关联数据。在Web前端开发中,我们通常使用AngularJS来构建复杂的Web应用程序。AngularJS提供了递归指令来实现树形组件的开发。下面,我们就来看一下如何使用递归指令来…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部