switch case 应用

2014-11-1211:46:27

switch的用法是判断case后面的表达式和switch后面的表达式是否相匹配,一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break。

如code<1>:代码中,由于i等于5,和前面的两个case都不匹配,所以结果中并没有one和ten的。而第三个case中的5就和switch中i的值匹配,因此就会打印出five的,由于没有遇到break所以就会顺序执行很面的代码,打印出three和other

对于流程控制中的switch-case语句,一直是我的一个弱项.

每当考试或者面试笔试的时候,总是丈二和尚摸不着头脑,我想这应该是我基础太差的原因吧!

为了彻底解决这个心病,不得不花点功夫了!

code<1>:

 1 public class Test7
 2 {
 3      public static void main(String[] args)
 4      {
 5         int i=5;
 6         switch(i)
 7         {
 8               case 1:
 9                System.out.println("one");
10               case 10:
11                System.out.println("ten");
12               case 5:
13                System.out.println("five");
14               case 3:
15                System.out.println("three");
16               default:
17                System.out.println("other");
18         }
19     }
20 }

->结果是:

five

three

other

switch 常用语句:

 1 switch(表达式)
 2 {
 3     case 常量表达式1:语句1;
 4
 5     ....
 6
 7     case 常量表达式2:语句n;
 8
 9     default:语句;
10 }

1.default就是如果没有符合的case就执行它,default并不是必须的.

2.case后的语句可以不用大括号. case 后面必须是常量表达式constant expressions, 错误表示如: case x .

3.switch语句的判断条件可以接受int,byte,char,short, enum不能接受其他类型.

4.一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句,正如code<1>所示的代码一样。

1.标准型(case后面都有break语句)

 1 int judgement_event = 3;
 2 switch(judegment_event)
 3 {
 4     case 1:
 5     System.out.println(1);        //不同的编译环境对应不同的语句命令
 6     break;
 7
 8     case 2:
 9     System.out.println(2);        //不同的编译环境对应不同的语句命令 
10     break;
11
12     case 3:
13     System.out.println(3);        //不同的编译环境对应不同的语句命令
14     break;
15
16     default:
17     System.out.println("default");   //不同的编译环境对应不同的语句命令
18     break;
19 }

->结果是:

3

时间: 2024-10-07 02:25:05

switch case 应用的相关文章

switch case 与 if

case 在编程中偶尔使用到switch case语句,对于case语句的处理,出现了两种错误,现总结如下: 1 case后必须是常量,不能使用‘<’或‘>’这种逻辑运算 2 case后如果是‘||’或者‘&&’逻辑运算,则实际是1或者0 #include <iostream> using namespace std; int main(int argc, char * argv[]) { int i; cin>>i; switch(i) { case

数据字典+匿名委托模拟switch/case功能

基本思想每个case的选择值作为键,处理过程做成函数委托存放进数据字典.用的时候根据之调用.下面上代码 封装的FuncSwitcher类 using System; using System.Collections.Generic; namespace Test {     class FuncSwitcher<T>     {         int count;         Dictionary<T, Delegate> FuncGather;         Delega

选择语句----switch case

今天学习了选择语句的 switch case是多选一的情况可以使用. 案例: //分别输入月份 几号 输出是今年的多少天 //每年的1,3,5,7,8,10,12月是31天 //今年的2月是28天 其他是30 int m1 = 31, m2 = 28, m3 = 31, m4 = 30, m5 = 31, m6 = 30, m7 = 31, m8 = 31, m9 = 30, m10 = 31, m11 = 30;----无需定义12月份的量,因为用不着 Console.Write("请输入月份

CASE函数用法:相当于switch..case:,能够实现等值判断,也可以做范围判断 相当于if...else

--CASE函数用法:--1.相当于switch..case:,能够实现等值判断--语法:--case 字段/表达式 --判断指定折字段或者表达式的值,它不能判断null值,因为null不是一个具体的值-- when 值 then '自定义值'-- when 值 then '自定义值'-- else '前面都不满足的情况'--end--特点:-- 1.会生成一个新列-- 2.then后面的值的类型需要一致select StudentNo,StudentName,case ClassId when

c++模板元编程五:switch/case语句编译时运行

2.4 switch/case 替代 现在模拟switch/case语句,不过也是在编译期运行.先看调用代码和输出结果 // test case cout << "test case" << endl; Case<2>::Run(); test case case 2 实现代码很简单,还是模板特化 template<int v> class Case { public: static inline void Run() { cout &l

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

java中的Switch case语句

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

【2-23】分支语句(switch…case)及循环语句

Switch-case分支语句与if语句作用相同,但需将情况都罗列出比较麻烦所以不常用. 其基本结构是: Switch(一个变量值) { Case 值1:要执行的代码段:break; Case 值2:要执行的代码段:break; --. Default:(否则) 要执行的代码段:break: } 循环语句 循环语句主要有for/while/foreach 循环语句的结构可分为四部分即四要素:初始条件,循环条件,循环体,状态改变 结构为: for(初始条件:循环条件:状态改变) { 循环体 } 例

汇编 ?switch case

知识点: ?switch case生成的汇编框架 ?逆向汇编代码还原成C++代码 一.了解switch case结构 1.普通情况 00401011 |. 83C4 04 ADD ESP,4 00401014 |. C745 FC 20000>MOV DWORD PTR SS:[EBP-4],20 ; a=20; 0040101B |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] 0040101E |. 8945 F8 MOV DWORD PTR SS:[EBP-8

if...else与switch...case的执行效率问题

switch语句比if else的执行效率要高 switch...case与if...else的根本区别: switch...case会生成一个跳转表来指示实际的case分支的地址,而这个跳转表的索引号与switch变量的值是相等的.从而,switch...case不用像if...else那样遍历条件分支直到命中条件,而只需访问对应索引号的表项从而到达定位分支的目的. 具体地说,switch...case会生成一份大小(表项数)为最大case常量+1的跳表,程序首先判断switch变量是否大于最