疯狂Java程序员16堂课---第6课流程控制的陷阱读书笔记:
来源:互联网 发布:域名检测 编辑:程序博客网 时间:2024/06/05 02:18
第6课流程控制的陷阱读书笔记:
1、 switch语句允许的表达式:
()里只能是如下5种数据类型:byte,short,int,char,enum
绝对不能是String,long,float,double等其他基本类型。
package com.trap;public class SwitchTest { public static void main(String[] args) {int a=5;switch((int)(a+1.2+0.8)){case 6:System.out.println("6");break;case 7:System.out.println("7");break;case 8:System.out.println("8");break;default:System.out.println("default");}}}
package com.trap;enum Season{SPRING,SUMMER,FALL,WINTER}public class EnumSwitch{public static void main(String[] args) {Season s = Season.FALL;switch (s){case SPRING://不可加Seanson.SPRING限定System.out.println("春天不是读书天");break;case SUMMER:System.out.println("夏日炎炎正好眠");break;case FALL:System.out.println("秋多蚊蝇");break;case WINTER:System.out.println("冬日冷");break;}}}
2、 if语句中的else的隐含条件:就是不满足else之前的条件
3、 尽量不省略循环体的花括号
Java语言规定,for,while,do循环中重复执行的语句不能是一条单独的局部变量定义语句。
4、 For循环
1、小心for();….
2、掌握循环执行次数要看整个循环过程(过程中改变)
3、浮点数作循环计数器
情况1:无限循环
package com.trap;public class FloatCount{public static void main(String[] args) {final int START = 999999999;//尝试循环50次,结果无限循环,因为i的值一直是:1.0E9 而START+50 是1.000006E9for (float i = START ; i < START + 50 ; i ++){System.out.println("i的值:" + i + new java.util.Date());}}}原因:
package com.trap;public class FloatTest{public static void main(String[] args) {final float f1 = 999999999;System.out.println(f1);System.out.println(f1 + 1);System.out.println(f1 == f1 + 1); //true}}
情况2:不执行
package com.trap;public class FloatCount2{public static void main(String[] args) {final int START = 999999999;//尝试循环20次for (float i = START ; i < START + 20 ; i ++){System.out.println("i的值:" + i + new java.util.Date());}}}原因:
package com.trap;public class FloatTest2{public static void main(String[] args) {final float f1 = 999999999;System.out.println(f1);System.out.println(f1 + 20);//下面语句输出trueSystem.out.println(f1 == f1 + 20);System.out.println(f1 + 50);//下面语句输出falseSystem.out.println(f1 == f1 + 50);}}
4、foreach作循环计数器
循环过程中改变循环变量没有意义,不会改变集合本身
0 0
- 疯狂Java程序员16堂课---第6课流程控制的陷阱读书笔记:
- 《疯狂java--突破程序员基本功的16课》读书笔记
- 《疯狂 Java 突破程序员基本功的 16 课》读书笔记
- 疯狂Java程序员16堂课---第8课:异常捕捉的陷
- 流程控制的陷阱
- 《疯狂java-突破程序员基本功的16课》读书笔记之数组
- 《疯狂java-突破程序员基本功的16课》读书笔记之实例变量与类变量
- 流程控制的那些陷阱
- 26、流程控制的陷阱
- 疯狂Java笔记:4.1 流程控制
- Java流程控制的陷阱——if语句和循环体的陷阱
- Java流程控制的陷阱——for循环和foreach循环的陷阱
- 《疯狂Java讲义(第3版)》.(李刚)——流程控制
- Java流程控制的陷阱——switch语句和标签陷阱
- 疯狂Java程序员16堂课-----第4章:Java 内存管理之---Java引用种类
- 关于Java变量、数组、对象的声明、初始化与访问方式-----《疯狂Java突破程序员基本功的16课》读书笔记----第一章
- 疯狂Java:突破程序员基本功的16课
- 《疯狂 Java 突破程序员基本功的 16 课》读书随记
- Median of Two Sorted Arrays
- notepad++配置python
- Spring的核心技术(五)---基于构造器的依赖注入
- Linux-CentOS 安装FFmpeg
- 2015年12月1日实习日志
- 疯狂Java程序员16堂课---第6课流程控制的陷阱读书笔记:
- OpenCV笔记(四)
- 蓝桥杯OJ刷题日记——12-基础练习 十六进制转八进制
- linux 安装jdk
- mysql语句剪辑
- Git学习
- UNIX网络编程笔记(2):一个简单的时间获取程序
- 博客搬迁
- zookeeper数据模型