C语言之switch
一 switch的语法
switch(表达式){
case 常量表达式1:
代码块1
break;
case 常量表达式2:
代码块2
break;
case 常量表达式3:
代码块3
break;
.......
default:
代码块n;
break;
}
语义:根据表达式的结果,直接跳转到与之对应的常量表达式1的代码块里去执行,如果常量表达式都没有与它对应的值,那么就会跳转到default语句里面执行代码块n
二 switch的注意事项
1.千万不要在小括号后面加;,否则可能引起报错
2.switch小括号里面的表达式的结果只能为整数,字符可以,因为字符本质上是整数
3.case后面的常量表达式,只能放常量,不能放变量
4.只要是常量的表达式都可以(所以case后面可以写常量运算式)
5.case后面的常量表达式的结果不允许有相同的
6.default位置可以写在任意位置
7.default可以省略
8.break可以省略,因为break关键字的作用:结束当前所在的switch语句
9.一般情况下,记得不要省略每个case后面的break;
tips:代码例子如下
#include <stdio.h>
int main(int argc, const char * argv[]) {
//千万不要在小括号后面加;
/*
//int num = 3;
// switch (num); { //会报错
//
// case 1:
// break;
// case 2:
// break;
// case 3:
// break;
// default:
// break;
// }
*/
//switch小括号里面的表达式的结果只能为整数
/*
float f = 10.3f;
char ch = 'a';
switch (f) { //会报错
case 1:
break;
default:
break;
}
*/
//char可以
/*
char ch = 'a';
switch (ch) {
case 'a':
break;
case 'b':
break;
default:
break;
}
*/
//case后面的常量表达式,只能放常量,不能放变量
/*
int num1 = 1,num2=2,num3=3;
switch (1) {
case num1: //报错
break;
default:
break;
}
*/
//只要是常量的表达式都可以
/*
switch (1) {
case 1+1;
break;
case 2-1:
break;
default:
break;
}
*/
//case后面的常量表达式的结果不允许有相同的
/*
switch (1) {
case 1:
break;
case 2:
break;
case 3:
break;
case 3-2: //报错
break;
default:
break;
}
*/
//是直接跳转到与之对应的case块
/*
int num = 2;
switch (num) {
case 1:
printf("1\n");
break;
case 4:
printf("4\n");
break;
case 5:
printf("5\n");
break;
case 2:
printf("2\n");
break;
default:
break;
}
*/
//因为break关键字的作用:结束当前所在的switch语句
/*
int num = 2;
switch (num) {
case 1:
printf("1\n");
break;
case 2: //会从这里开始一直往下直到执行完毕
printf("2\n");
case 3:
printf("3\n");
default:
printf("ddddd\n");
}
*/
return 0;
}
C语言之switch的更多相关文章
- 李洪强漫谈iOS开发[C语言-040]-switch case
李洪强漫谈iOS开发[C语言-039]-switch case 补充:
- PROCESS_YIELD()宏和C语言的switch语句< contiki学习笔记之七>
写在前面: 按照main()函数的代码一行一行的分析,该是看到了 etimer_process 这个位置.但是etimer_process实现里的一个宏 PROCESS_YIELD()引出了很多故事 ...
- 选择语言之switch case
程序语言-选择语言之switch case 多选一,类似if else if else if else 模版: Switch(选择条件) { Case(条件一)//相当于if Conso ...
- C语言基础--switch
switch格式: switch (条件表达式) { case 整数: // case可以有一个或多个 语句; break; case 整数: 语句; break; default: 语句; brea ...
- Go语言类型switch
switch还可以用于判断变量类型.使用方式为T.(type),即在变量后加上.(type).见代码: package main import ( "fmt" ) func mai ...
- C语言-switch语句
switch (表达式的值) { case 1: 语句1 break; case 2: 语句2 break; case 3: 语句3 break; case 4: 语句4 break; ...... ...
- C语言之 Switch和?:运算符的反汇编
Switch条件语句 通过上面一篇了解了条件语句的使用,接下来就直接进行反汇编学习 #include <stdio.h> void print() { int b = 1; switch ...
- C语言switch/case圈复杂度优化重构
软件重构是改善代码可读性.可扩展性.可维护性等目的的常见技术手段.圈复杂度作为一项软件质量度量指标,能从一定程度上反映这些内部质量需求(当然并不是全部),所以圈复杂度往往被很多项目采用作为软件质量的度 ...
- 1.4 Go语言-switch语句(转)
与串联的if语句类似,switch语句提供了一个多分支条件执行的方法.不过在这里用一个专有名词来代表分支——case.每一个case可以携带一个表达式或一个类型说明符.前者又可被简称为case表达式. ...
随机推荐
- SQL点滴22—性能优化没有那么神秘
原文:SQL点滴22-性能优化没有那么神秘 经常听说SQL Server最难的部分是性能优化,不禁让人感到优化这个工作很神秘,这种事情只有高手才能做.很早的时候我在网上看到一位高手写的博客,介绍了SQ ...
- DirectX (13) 粒子系统
笔者:i_dovelemon 资源:CSDN 日期:2014 / 10 / 16 主题:Point Sprite, Particle System 介绍 在游戏中.非常多的绚丽,灿烂的特效,都能够使用 ...
- jquery-制作选项卡
强大的jquery-制作选项卡 最近在学习jquery,特地把今天写的一个选项卡源码贴出来.只是做只是梳理,大神们请不要吐槽,如果有更好的方法,欢迎指点.谢谢. css <style> ...
- oracle中intersect的用法
和 UNION 指令类似, INTERSECT 也是对两个 SQL 语句所产生的结果做处理的.不同的地方是, UNION 基本上是一个 OR (如果这个值存在于第一句或是第二句,它就会被选出),而 I ...
- DDD 应对具体业务场景,Domain Model 重新设计
DDD 应对具体业务场景,Domain Model 重新设计 写在前面 上联:no zuo no die why you try 下联:no try no high give me five 横批: ...
- Javascript技巧实例精选(3)—用字符在屏幕上打印金字塔
用Javascript实现用★字符在屏幕上打印金字塔 >>点击这里下载完整html源码<< 这是最后的截图 这是相应的Javascript源码 //动态创建表格 var s=' ...
- Kraken.js!
Hello Kraken.js! 前言 kraken.js 由paypal 公司开源的一个用于快速开发基于Express.js框架应用的快速开发工具, 因为kraken 并没有在Express.js基 ...
- tomcat的OutOfMemoryError内存溢出解决方法
在tomcat安装路径bin目录下 打开catalina.bat在第一行加上 set JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSi ...
- JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案
JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案 最近在开发WSS RESTful服务的时候, 碰到了这些个纠 ...
- 最小堆实现优先队列:Python实现
最小堆实现优先队列:Python实现 堆是一种数据结构,因为Heapsort而被提出.除了堆排序,“堆”这种数据结构还可以用于优先队列的实现. 堆首先是一个完全二叉树:它除了最底层之外,树的每一层的都 ...