嵌套if结构:在一个if选择结构中包含一个完整的if选择结构执行规律:根据条件是否成立执行对应的代码 随机数的获取: Math.random():随机产生一个大于等于0.0小于1.0的double类型的数据 Math.random()*10:随机产生一个大于等于0.0小于10.0的double类型的数据 (int)(Math.random()*10):随机产生一个大于等于0小于10的int类型的数据 总结:随机获取一个[num1,num2)之间int类型的整数(num2>num1) int num =(int)(Math.random()*(num2-num1)+num1);
eg:
// 随机产生一个大于等于19,小于51之间的int类型的数
int num4 = (int) (Math.random() * 32 + 19);
System.out.println(num4);
switch选择结构
switch选择: 语法规则: switch (表达式){ case 常量1: //语句; break; case 常量2: //语句; break; case 常量3: //语句; break; ...... case 常量n: //语句; break; default: //语句; break; } 执行规律: 1)根据表达式的值匹配case后面的常量值, 匹配上了就执行对应的语句,执行完后面的语句,执行break, 结束整个switch结构,继续往下执行switch选择结构之后的代码 2)如果表达式的值与所有常量的值都不匹配, 就执行default里面的语句, 执行完以后执行break退出整个switch选择结构 注意: 1)表达式的值可以是int、short、byte、char、枚举类型、String(JDK1.7之后支持) 2)case后面的常量值不能相同 3)default语句可以不写。如果写上表示表达式的值与所有常量值不匹配, 就执行default里的语句。default语句可以写在任意位置,一般写在switch的末尾位 置。 4)switch选择结构只能处理等值判断的情况 5)break的作用是结束整个switch选择结构, 如果缺少,代码会继续向下执行,执行下一个case里的语句,这种现象称之为"穿透 现象"。 case穿透现象可以合理使用
穿透现象 eg:
/*
* 输入月份,输出季节
*
* 12 1 2 冬季 3 4 5 春季 6 7 8 夏季 9 10 11 秋季
*/
int month=4;
switch(month){
case 12:
//System.out.println("冬季");
//break;
case 1:
//System.out.println("冬季");
//break;
case 2:
System.out.println("冬季");
break;
case 3:
//System.out.println("春季");
//break;
case 4:
//System.out.println("春季");
//break;
case 5:
System.out.println("春季");
break;
case 6:
//System.out.println("夏季");
//break;
case 7:
//System.out.println("夏季");
//break;
case 8:
System.out.println("夏季");
break;
case 9:
//System.out.println("秋季");
//break;
case 10:
//System.out.println("秋季");
//break;
case 11:
System.out.println("秋季");
break;
效果: