C语言中switch...case语句中break的重要性

在C语言中switch...case语句是经常用到的,下面我介绍一下在使用该语句时候需要注意的一个细节问题。话不多说,直接举例子:

例子1:

switch(fruit)

{

case 1:printf("apple"); break;

case 2:printf("banana"); break;

case 3:printf("orange"); break;

case 4:printf("pear"); break;

case 5:printf("grape"); break;

}

当fruit的值为1时,毫无疑问,此时程序输出apple;同理,当fruit的值为2时,输出banana;当fruit的值为3时,输出orange;当fruit的值为4时,输出pear;当fruit的值为5时,输出grape.下面我再举个例子,在该例子中我们去掉case 3后面的break.

例子2:

switch(fruit)

{

case 1:printf("apple"); break;

case 2:printf("banana"); break;

case 3:printf("orange");

case 4:printf("pear"); break;

case 5:printf("grape"); break;

}

在例子2中,当fruit的值为3时,程序输出的为orangepear;当把case 4后的break也去掉,当fruit的值为3时,此时程序输出的为orangepeargrape.对比例子1和例子2,大家应该明白break在switch...case语句中的重要性了吧,在写程序中一定不能轻易忽视这个问题!另外,在写程序中有时候为了实现某个功能也会故意省去case后面的break,在此处就不必举例,相信大家会在写程序的过程中遇到这种情况。

时间: 2024-08-06 03:40:19

C语言中switch...case语句中break的重要性的相关文章

Switch Case语句中多个值匹配同一个代码块的写法

switch ($p) { case 'home': case '': $current_home = 'current'; break; case 'users.online': case 'users.location': case 'users.featured': case 'users.new': case 'users.browse': case 'users.search': case 'users.staff': $current_users = 'current'; break

switch case语句中能否作用在String,long上

在之前的eclipse中使用switch的case语句时是只能为(byte,short,char)int类型或枚举类型.但在jdk1.7以后 在case语句中是可以使用String 以及long 等类型的 然后再控制台输入"好"之后 跟据所提供的值对应输出了case值.所以String,long可以作用在switch当中 原文地址:https://www.cnblogs.com/JXun/p/9338583.html

C语言中,while()语句中使用赋值语句

while()语句括号中是一个逻辑表达式,用以判断while循环是否需要继续执行.可以是赋值语句. while循环的一般格式为: while(expr) { ;//body } 其中用来判断循环条件的expr可以是任意表达式.当其是赋值语句的时候,含义为:先执行赋值语句,然后对左值进行判断.如果左值为0则expr为假,while退出:否则expr为真,while继续循环. 不过直接用赋值语句做expr时,编译器可能为认为赋值操作符=是等于判断符==的误写,这时编译器可能会报一个警告(warnin

java中的Switch case语句

java中的Switch case 语句 在Switch语句中有4个关键字:switch,case break,default. 在switch(变量),变量只能是整型或者字符型,程序先读出这个变量的值,然后在各个"case"里查找哪个值和这个变量相等,如果相等,则条件成立,程序执行相应的分支,直到碰上break或有switch语句结束. 有几个需要着重注意的地方. 第一,前面说了switch(变量),只能是整型和字符类型. 第二,case之后是直接的常量数值. 第三,break使得程

在switch中的case语句中声明变量会被提前

原文链接:http://my.oschina.net/u/2000201/blog/514384 本人今天在编写工具类时,无意之间发现,在Java的Swith语句的case语句中声明局部变量时出现了一个奇怪的问题. 废话少说,先列出例子,一看便知. 情景一:case 1中声明变量x,case 2中不能再声明变量x switch (1) { case 1: int x = 1; break; case 2: int x = 2;// 编译器会提示:Duplicate local variable

逆向知识第九讲,switch case语句在汇编中表达的方式

一丶Switch Case语句在汇编中的第一种表达方式 (引导性跳转表) 第一种表达方式生成条件: case 个数偏少,那么汇编中将会生成引导性的跳转表,会做出 if else的情况(类似,但还是能分辨出来的) 1.高级代码: #include "stdafx.h" int main(int argc, char* argv[]) { switch(argc) { case 0: printf("case 0\n"); break; case 1: printf(&

c++中switch case语句多个值同个语句块写法

switch case语句: 1 switch(表达式) 2 { 3 case 常量表达式1: 4 { 5 语句块1: 6 break: 7 } 8 …… 9 case 常量表达式n: 10 { 11 语句块n: 12 break: 13 } 14 default: 15 { 16 语句块n+1: 17 } 18 } 当碰到多个常量使用同一语句块时,我习惯性用了pascal的写法,即如case 1..3,5这样子,而正确的写法应该是: 1 case 1:case 2:case 3: 2 { 3

switch… case 语句的用法(二)

总结来说:switch的用法是判断case后面的表达式和switch后面的表达式是否相匹配,一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break.都不匹配找default.不管default放在哪里.只要一个路口(case 或default)进入,就顺序执行后面的程序代码,知道遇到break if语句处理两个分支,处理多个分支时需使用if-else-if结构,但如果分支较多,则嵌套的if语句层就越多,程序不但庞大而且理解也比较困难.深层嵌套的else-i

Java switch case 语句

switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支. switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断. class Test { public static void main(String args[]){ //char grade = args[0].charAt(0); char grade = 'C'; switch(grade) { case 'A' : S