C语言流程控制之switch语句详解

C语言流程控制之switch语句详解是本网站总结的一篇C语言教程文章,主要介绍了switch语句的用法和注意事项。本文将通过以下几个方面详细讲解:

1. switch语句的基本格式

switch语句由一个表达式和多个case组成,如下所示:

switch(expression){
    case constant-expression1:
        statement1;
        break;
    case constant-expression2:
        statement2;
        break;
    ...
    default:
        statementN;
}

其中,expression是需要判断的值,只能是整型或字符型,比如一个变量或者常量;case关键字后面的常量表达式需要和expression的值进行比较;如果expression的值和某个case后面的常量表达式相等,则执行该case后面的语句,直到遇到break或switch语句的末尾;default是可选的,如果所有的case都不满足条件,则执行default之后的语句。

2. switch语句的注意事项

使用switch语句需要注意以下几点:

  • 每个case之间必须使用break语句隔开,否则会出现case穿透现象,造成意想不到的结果;
  • expression必须是整型或字符型,不能为浮点型或指针类型;
  • case中的常量表达式必须是整型常量表达式,不能使用变量或者非常量表达式;
  • default关键字是可选的,如果没有default,则当expression的值和所有case后面的常量表达式都不匹配时,switch语句将会不执行任何语句;
  • switch语句的花括号不能省略,否则会编译错误。

3. switch语句的示例

示例一

下面是一个简单的根据数字输出星期几的程序,该程序使用switch语句进行判断:

#include <stdio.h>

int main(){
    int day = 1;
    switch(day){
        case 1:
            printf("Monday\n");
            break;
        case 2:
            printf("Tuesday\n");
            break;
        case 3:
            printf("Wednesday\n");
            break;
        case 4:
            printf("Thursday\n");
            break;
        case 5:
            printf("Friday\n");
            break;
        case 6:
            printf("Saturday\n");
            break;
        case 7:
            printf("Sunday\n");
            break;
        default:
            printf("Invalid day\n");
    }
    return 0;
}

运行结果为:

Monday

示例二

下面是一个计算器程序,该程序根据用户输入的操作符进行加、减、乘、除运算:

#include <stdio.h>

int main(){
    char operator;
    double num1, num2, result;

    printf("请输入一个运算符(+,-,*,/):");
    scanf("%c", &operator);
    printf("请输入两个数字:");
    scanf("%lf %lf", &num1, &num2);

    switch(operator){
        case '+':
            result = num1 + num2;
            printf("%.2lf + %.2lf = %.2lf\n", num1, num2, result);
            break;
        case '-':
            result = num1 - num2;
            printf("%.2lf - %.2lf = %.2lf\n", num1, num2, result);
            break;
        case '*':
            result = num1 * num2;
            printf("%.2lf * %.2lf = %.2lf\n", num1, num2, result);
            break;
        case '/':
            if(num2 == 0){
                printf("除数不能为0\n");
                break;
            }
            result = num1 / num2;
            printf("%.2lf / %.2lf = %.2lf\n", num1, num2, result);
            break;
        default:
            printf("无效的操作符\n");
    }

    return 0;
}

运行结果为:

请输入一个运算符(+,-,*,/):+
请输入两个数字:4.5 5.6
4.50 + 5.60 = 10.10

以上就是本网站为大家总结的C语言流程控制之switch语句的详细攻略,希望可以帮助到大家。

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

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • 利用Python对哥德巴赫猜想进行检验和推理

    如何利用Python对哥德巴赫猜想进行检验和推理 1. 什么是哥德巴赫猜想 哥德巴赫猜想,又称为哥德巴赫-孪生素数猜想,是一种数学问题,指的是任何一个大于2的偶数均能表示为两个质数之和。改猜想由德国数学家哥德巴赫于1742年提出,但一直没有被严谨证明或证伪。 2. 怎样进行检验和推理 要检验和推理哥德巴赫猜想,我们需要有以下几个步骤: 2.1. 定义质数 首…

    C 2023年5月22日
    00
  • Atlas维他命C怎么获得 全材料来源及用途介绍

    Atlas维他命C怎么获得 全材料来源及用途介绍 什么是Atlas维他命C? Atlas维他命C是游戏《Atlas》中的一种资源,是一种无法在生物体内生成的维生素C。它用于合成具有不同作用的物品,如治疗剂和高级补给品。 如何获得Atlas维他命C? 获得方法一:利用维生素C粉末制作 Atlas维他命C可以通过合成维生素C粉末来获得: 5 x 蜂蜜 10 x …

    C 2023年5月23日
    00
  • ToString()使用方法汇总(c#)

    ToString()使用方法汇总(c#) 什么是ToString() 在C#中,ToString()是一个对象方法,用于将当前对象转换为字符串表示形式。 ToString()的使用 使用ToString()方法可以将对象转换为字符串。ToString()方法有很多重载版本,可以支持不同的数据类型。下面是ToString()方法的一些常见用法: 将数字转换为字…

    C 2023年5月22日
    00
  • 一篇文章带你了解C语言–数据的储存

    一篇文章带你了解C语言–数据的储存 在C语言中,数据的储存有三种方式:变量、数组和指针。 变量 变量是程序运行过程中储存数据的基本单位,它代表着一个内存地址,程序可以通过该地址访问该变量。 声明变量 在C语言中,变量的声明需要给出变量名和类型,如下: int a; float b; char c; 变量的赋值和读取 赋值使用等号“=”来实现,比如: a =…

    C 2023年5月23日
    00
  • C++ 中构造函数的实例详解

    C++ 中构造函数的实例详解 什么是构造函数 在 C++ 中,构造函数是一个特殊的函数,用于在对象被创建时进行初始化的操作。每个类都必须拥有至少一个构造函数,否则编译器将会自动为其创建一个默认构造函数。 构造函数的定义和调用 构造函数与普通函数类似,也有参数和函数体,但是它没有返回值和函数名称与类名相同。构造函数在创建对象时自动调用。 class MyCla…

    C 2023年5月22日
    00
  • Win8.1系统开机蓝屏提示STOP:c0000221 unknown Hard Error的解决方法

    Win8.1系统开机蓝屏提示STOP:c0000221 unknown Hard Error可能是因为硬件故障、系统文件损坏或错误的硬件驱动等原因引起的。这个问题需要根据具体情况进行处理,下面是一些可能有用的解决方法: 一、检查硬件设备 硬件故障是导致Win8.1系统开机蓝屏提示STOP:c0000221 unknown Hard Error的一个常见原因。…

    C 2023年5月30日
    00
  • Qt写入Json文件的方法详解(含源码+注释)

    下面我就为您详细讲解一下“Qt写入Json文件的方法详解(含源码+注释)”这篇文章。 一、前言 本文主要介绍Qt中如何使用QJsonDocument来进行Json的操作,其中包括Json文件的读取、写入及解析等操作。该文档由以下几个部分构成: Json的基础知识——介绍了Json的基础知识和理解 Qt中Json的API使用——介绍了整个Qt中Json相关AP…

    C 2023年5月23日
    00
  • C++解析Json的方法详解【jsoncpp】

    C++解析Json的方法详解【jsoncpp】 什么是Json? Json是一种轻量级的数据交换格式。它基于JavaScript语法,但是与之不同的是Json可以被语言独立使用,Json格式化并不是javascript专属的。Json格式化简单,轻量,适合网络传输。 为什么需要解析Json? 在网络传输中,常常需要将数据进行序列化传输,Json格式是一种非常…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部