疯狂Java程序员16堂课---第6课流程控制的陷阱读书笔记:

第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.000006E9
		for (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);
		//下面语句输出true
		System.out.println(f1 == f1 + 20);
		System.out.println(f1 + 50);
		//下面语句输出false
		System.out.println(f1 == f1 + 50);
	}
}

4、foreach作循环计数器

   循环过程中改变循环变量没有意义,不会改变集合本身

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值