switch(A){case a: break;........default :}用法
来源:互联网 发布:算法统宗 编辑:程序博客网 时间:2024/04/30 20:19
平时在使用switch…case语句的时候,只是会用,没有注意到它的一些细节,怪我大学时C没有学好吧,哈哈,有以下几点需要注意:
第一.switch…case语句中,一般情况下都只是使用到switch…case,很少用到default:,在没有default时,如下:
start= (Button) findViewById(R.id.start);start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { switch (view.getId()){ case 0: Log.e("蛋蛋","--------0"); case 1: Log.e("蛋蛋","-------1"); case 2: Log.e("蛋蛋","-------2"); } } });
先把switch括号中的view.getId()作为判断条件,要是view.getId()拿到的值为0,则执行case 0:语句,将Log.e(“蛋蛋”,”——–0”);打印出来,由于没有添加break;所以会将后续的两个Log全部执行掉,要是view.getId()拿到的值为1,则会从case 1:开始执行,结果是将1,2给打印出来,而0被跳过了
第二.要是添加了break,则结果会不同,如下:
start= (Button) findViewById(R.id.start);start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { switch (view.getId()){ case 0: Log.e("蛋蛋","--------0"); break; case 1: Log.e("蛋蛋","-------1"); break; case 2: Log.e("蛋蛋","-------2"); break; } } });
要是有break,那view.getId()等于0的时候,只打印0,不会执行1和2咯
第三.要是添加上default:语句,但是没有break,如下
start= (Button) findViewById(R.id.start);start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { switch (0){ case 0: Log.e("蛋蛋","--------0"); case 1: Log.e("蛋蛋","-------1"); case 2: Log.e("蛋蛋","-------2"); default: Log.e("蛋蛋","-------3"); } } });
要是条件给出的是0,它会将0,1,2,3全部执行过去,结果如下
10-19 14:09:11.493 13598-13598/com.myself.zhw.text E/蛋蛋: ——–0
10-19 14:09:11.513 13598-13598/com.myself.zhw.text E/蛋蛋: ——-1
10-19 14:09:11.513 13598-13598/com.myself.zhw.text E/蛋蛋: ——-2
10-19 14:09:11.513 13598-13598/com.myself.zhw.text E/蛋蛋: ——-3
那要是添加了break呢?
代码如下:
start= (Button) findViewById(R.id.start);start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { switch (0){ case 0: Log.e("蛋蛋","--------0"); break; case 1: Log.e("蛋蛋","-------1"); break; case 2: Log.e("蛋蛋","-------2"); break; default: Log.e("蛋蛋","-------3"); } } });
执行结果如下:
10-19 14:33:55.153 27257-27257/com.myself.zhw.text E/蛋蛋: ——–0
说明当存在default时,当没有case成立的时候就执行default,要是有成立的话,就执行那个case,不再执行default
第四,要是不存在break,而且default不放在最后呢?
start= (Button) findViewById(R.id.start);start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { switch (1){ default: Log.e("蛋蛋","-------3"); case 0: Log.e("蛋蛋","--------0"); case 1: Log.e("蛋蛋","-------1"); case 2: Log.e("蛋蛋","-------2"); } } });
执行的结果如下:
10-19 14:41:14.003 9674-9674/com.myself.zhw.text E/蛋蛋: ——-1
10-19 14:41:14.013 9674-9674/com.myself.zhw.text E/蛋蛋: ——-2
要是条件值为5呢?
执行结果如下:
10-19 14:42:17.873 12456-12456/com.myself.zhw.text E/蛋蛋: ——-3
10-19 14:42:17.873 12456-12456/com.myself.zhw.text E/蛋蛋: ——–0
10-19 14:42:17.873 12456-12456/com.myself.zhw.text E/蛋蛋: ——-1
10-19 14:42:17.873 12456-12456/com.myself.zhw.text E/蛋蛋: ——-2
要是存在break呢?
start= (Button) findViewById(R.id.start);start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { switch (5){ default: Log.e("蛋蛋","-------3"); case 0: Log.e("蛋蛋","--------0"); break; case 1: Log.e("蛋蛋","-------1"); break; case 2: Log.e("蛋蛋","-------2"); break; } } });
执行结果如下:
0-19 14:45:05.723 15165-15165/com.myself.zhw.text E/蛋蛋: ——-3
10-19 14:45:05.723 15165-15165/com.myself.zhw.text E/蛋蛋: ——–0
要是把default放最后呢?
start= (Button) findViewById(R.id.start);start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { switch (5){ case 0: Log.e("蛋蛋","--------0"); break; case 1: Log.e("蛋蛋","-------1"); break; case 2: Log.e("蛋蛋","-------2"); break; default: Log.e("蛋蛋","-------3"); } } });
结果如下:
10-19 14:47:39.013 22338-22338/com.myself.zhw.text E/蛋蛋: ——-3
好了,现在具体的功能自己体会吧,不用总结了。
- switch(A){case a: break;........default :}用法
- JavaScript -- switch,case,break,default
- switch case break default 判断语句
- js switch case default 的用法
- switch case 没有break 和default 位置乱放分析
- switch-case a new way
- int func(int a) { int b; switch(a) { case 1: 30; case 2: 20; case 3: 16; default: 0 } return b; }
- switch case break
- switch case break
- switch-case retrun break
- switch case break
- switch-case-break语句
- switch-case-break;
- switch case 中的break
- switch case 相关介绍和没有break 和default 位置乱放分析
- Thinking in Java 第四版本--第3章练习题答案--for,break,switch,case,default
- C++程序员学Java系列之十一:流程控制语句switch,case,break,default
- switch中的default和break
- JSON数据传递的中文乱码
- Hadoop伪分布式搭建和测试(详细版)
- 外部中断与定时器中断实验(修改)
- Java的面试题整理一(线程专题篇)
- c# 方法参数(传值,传引用,ref,out,params,可选参数,命名参数)
- switch(A){case a: break;........default :}用法
- #("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name:")
- Python笔记Day2
- 解决Eclipse再次打开工程时找不到Design的图形界面
- Apache Kafka系列(一)----简介
- Python运算符
- ETL的新兴趋势:超越大数据
- JavaScript 获取上个月份yyyy-MM格式日期
- 拷贝(添加)本地音乐到iPhone、iPad设备(最新iTunes12.7)