学习
错题
模考
我的
登录/注册/忘记密码
学习 / 选择结构 / switch语句
switch语句
switch 写法;break 可选,不写会贯穿
1. switch 语句的写法
`switch` 按一个整数(或字符)的值,跳到对应的 `case`。 ```c switch (表达式) { case 常量1: 语句; break; case 常量2: 语句; break; default: 语句; } ``` 记住: - 括号里一般是 `int` 或 `char`,不要用小数。 - `case` 后面必须是**常量**(数字或字符常量),不能是变量。 - `default` 是「上面都不匹配」时走的分支,可以不写。 - 每个 `case` 执行完,通常写 `break;` 跳出 `switch`。 ```c switch (ch) { case 'A': printf("优秀"); break; case 'B': printf("良好"); break; default: printf("其他"); } ``` **里面也可以再分支** 某个 `case` 里可以再写 `if`,也可以再写一个 `switch`。这和 if 套 if 一样,都是嵌套。后面循环套循环,套法相同。
2. 有 break 和没有 break
`break` 在 `switch` 里是**可选的**。写不写,意思完全不同。 **写了 `break`**:做完这个 `case` 就离开整个 `switch`,后面的 `case` 不再执行。 **不写 `break`**:做完这个 `case`,会接着执行下面的 `case`(叫做贯穿、fall through),直到碰到 `break` 或 `switch` 结束。 ```c int x = 1; switch (x) { case 1: printf("one"); /* 这里没有 break */ case 2: printf("two"); break; case 3: printf("three"); break; } /* x 为 1 时输出:onetwo */ ``` `x` 为 2 时只输出 `two`;为 3 时只输出 `three`。 有时故意不写 `break`,让几个 `case` 共用后面的语句: ```c switch (ch) { case 'a': case 'A': printf("字母 A"); break; } ``` `'a'` 和 `'A'` 都会打出同一句。这是「可选」的用法,不是漏写。 初学默认每个 `case` 末尾都写 `break`。只有确实想贯穿时才拿掉。
开始练习
动手写
返回选择结构
动手写
3 道编程 · 综合运用本阶段知识点
编程题把本阶段知识点串起来用。只看要点不做,认识停在纸面上。
查看本阶段全部编程题
简单计算器
未做
开始写
输出星期
未做
开始写
等第转换
未做
开始写
登录
注册
忘记密码
点击此处输入用户名
点击此处输入密码
登录
点击此处输入用户名
点击此处输入密码
点击此处输入邮箱
发送验证码
点击此处输入验证码
点击此处输入邮箱
发送验证码
点击此处输入验证码
点击此处输入新密码