IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言 switch分支结构 -> 正文阅读

[C++知识库]C语言 switch分支结构

目录

一、switch语句

语法

执行过程?

流程图?

示例?

运行效果

温馨提示

一、switch语句

一个?switch?语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个?switch case?进行检查

语法

C 语言中?switch?语句的语法:

switch(expression){
    case constant-expression  :
       statement(s);
       break; /* 可选的 */
    case constant-expression  :
       statement(s);
       break; /* 可选的 */
  
    /* 您可以有任意数量的 case 语句 */
    default : /* 可选的 */
       statement(s);
}

switch?语句必须遵循下面的规则:

  1. switch?语句中的?expression?是一个常量表达式,必须是一个整型或枚举类型
  2. 在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号
  3. case 的?constant-expression?必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量
  4. 当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到?break?语句为止
  5. 当遇到?break?语句时,switch 终止,控制流将跳转到 switch 语句后的下一行
  6. 不是每一个 case 都需要包含?break。如果 case 语句不包含?break,控制流将会?继续?后续的 case,直到遇到 break 为止
  7. 一个?switch?语句可以有一个可选的?default?case,出现在 switch 的结尾。default case 可用于在上面所有 case 都不为真时执行一个任务。default case 中的?break?语句不是必需的

执行过程?

它的执行过程是:

  1. 首先计算表达式的值,假设为value
  2. 从第一个case开始,比较value?和整型数值1,如果它们相等,就执行冒号后面的所有语句,也就是从语句1一直执行到语句n+1,而不管后面的case是否匹配成功
  3. 如果value?和整型数值1不相等,就跳过冒号后面的语句1,继续比较第二个case、第三个case……一旦发现和某个整型数值相等了,就会执行后面所有的语句。假设?value和整型数值5相等,那么就会从语句5一直执行到语句n+1
  4. 如果直到最后一个整型数值n都没有找到相等的值,那么就执行default后的语句 n+1
  5. 需要重点强调的是,当和某个整型数值匹配成功后,会执行该分支以及后面所有分支的语句

流程图?

示例?

test19.c

#include <stdio.h>

int main()
{
  int    day=0;   // 定义一个整数变量用于接受键盘输入的数字

  printf("请输入0-6之间的数字:");    // 提示用户输入
  scanf("%d",&day);              // 接受用户从键盘输入的数据

  switch (day)
  {
    case 0:
       printf("星期天\n");
       break;
    case 1: 
       printf("星期一\n");
       break;
    case 2: 
       printf("星期二\n");
       break;
    case 3: 
       printf("星期三\n");
       break;
    case 4:
       printf("星期四\n");
       break;
    case 5:
       printf("星期五\n");
       break;
    case 6:
       printf("星期六\n");
       break;
    default:
       printf("输入错误。\n");
  }
}

运行效果

温馨提示

??switch?(result)
??{
????case?10:??printf("...");?break;????//?正确,整数
????case?1+1:??printf("...");?break;????//?正确,表达式1+1==17是整数
????case?'5':??printf("...");?break;????//?正确,字符可以转换为整数
????case?'A':??printf("...");?break;????//?正确,字符可以转换为整数
????case?'A'+10:??printf("...");?break;????//?正确,字符可以转换为整数
????case?3.14:??printf("...");?break;????//?错误,不能为小数
????case?ii:??printf("...");?break;????//?错误,不能采用变量
??}
  1. case后面必须是整数和字符,或者是结果为整数和字符的表达式,但不能包含任何变量。请看下面的例子
  2. default不是必须的。当没有 default时,如果所有case都匹配失败,那么就什么都不执行

?

?

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-08-19 18:45:50  更:2022-08-19 18:47:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/10 14:49:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码