一 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的更多相关文章

  1. 李洪强漫谈iOS开发[C语言-040]-switch case

    李洪强漫谈iOS开发[C语言-039]-switch case 补充:

  2. PROCESS_YIELD()宏和C语言的switch语句< contiki学习笔记之七>

    写在前面:  按照main()函数的代码一行一行的分析,该是看到了 etimer_process 这个位置.但是etimer_process实现里的一个宏 PROCESS_YIELD()引出了很多故事 ...

  3. 选择语言之switch case

    程序语言-选择语言之switch   case 多选一,类似if    else if  else if  else 模版: Switch(选择条件) { Case(条件一)//相当于if Conso ...

  4. C语言基础--switch

    switch格式: switch (条件表达式) { case 整数: // case可以有一个或多个 语句; break; case 整数: 语句; break; default: 语句; brea ...

  5. Go语言类型switch

    switch还可以用于判断变量类型.使用方式为T.(type),即在变量后加上.(type).见代码: package main import ( "fmt" ) func mai ...

  6. C语言-switch语句

    switch (表达式的值) { case 1: 语句1 break; case 2: 语句2 break; case 3: 语句3 break; case 4: 语句4 break; ...... ...

  7. C语言之 Switch和?:运算符的反汇编

    Switch条件语句 通过上面一篇了解了条件语句的使用,接下来就直接进行反汇编学习 #include <stdio.h> void print() { int b = 1; switch ...

  8. C语言switch/case圈复杂度优化重构

    软件重构是改善代码可读性.可扩展性.可维护性等目的的常见技术手段.圈复杂度作为一项软件质量度量指标,能从一定程度上反映这些内部质量需求(当然并不是全部),所以圈复杂度往往被很多项目采用作为软件质量的度 ...

  9. 1.4 Go语言-switch语句(转)

    与串联的if语句类似,switch语句提供了一个多分支条件执行的方法.不过在这里用一个专有名词来代表分支——case.每一个case可以携带一个表达式或一个类型说明符.前者又可被简称为case表达式. ...

随机推荐

  1. sql点滴40—mysql乱码问题总结

    原文:sql点滴40-mysql乱码问题总结 本文将为大家讲解如何处理Java连接过程中的MySQL中文乱码问题.一般MySQL中文乱码问题都是与字符集有关,这里作者的经历也大致差不多. MySQL默 ...

  2. 分享12款经典时尚的HTML5应用

    分享伟大,呵呵.今天给大家分享一下收集的12个HTML5小特效. 我整理一下源码,给大家打包一下,我博客园上传文件大小有限,传不了了. 需要的请留下邮箱就行了,觉得好的话,不要忘了点赞哦~ 1.CSS ...

  3. memcpy源代码

    7月22号去面试开发的职位,面试官先问我在以前项目中写了什么程序.我就巴拉巴拉的说了一堆写过的code,主要还是测试工具和自动化测试代码.之后让我写memcpy的函数,面试官还挺好的,帮我把函数原型都 ...

  4. C#发送邮件三种方法(Localhost,SMTP,SSL-SMTP)

    原文:C#发送邮件三种方法(Localhost,SMTP,SSL-SMTP) 最近公司由于一个R&I项目的需要,用户要求在购买产品或出货等一些环节,需要发送邮件提醒或者说每周一让系统自动采集数 ...

  5. Mysql高级之触发器

    原文:Mysql高级之触发器 触发器是一类特殊的事务 ,可以监视某种数据操作(insert/update/delete),并触发相关操作(insert/update/delete). 看以下事件: 完 ...

  6. Date与SimpleDateFormat

    Date常用的方法 返回类型 方法名称 备注 Date New Date() 创建当前日期对象 Date New date(long dt) 使用自1970.1.1以后的指定毫秒数创建日期 boole ...

  7. MogileFS

    分布式文件系统 ~MogileFS~ 一.分布式文件系统 分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与 ...

  8. D15

    T3: 树上的递归,很裸 T4:题目模型:二分染色问题 以及根据ccy大神指点,理解树形dp可以从 没有上司的舞会 聚会的快乐 这两题入手

  9. Stimulsoft.Report.web viewer控件添加按钮

    当你购买了带源码的时候,你可以对源码进行修改以达到自己想要的效果,比较这里讲到的,向viewer控件工具栏添加按钮. 通过源码目录可以看出我们需要修改的有两部分代码 红色方块圈中的部分,[StiWeb ...

  10. Grub禁用UUID

    这个属于一个个人喜好问题,我每次看到 df -h 的结果都很郁闷,根目录那一行设备是用uuid表示的,那一串字符真是够长的,看起来非常别扭,所以就自己修改了一下/etc/default/grub文件. ...