今天主要讲一下if选择结构以及如何利用Math.random()来获取随机数。
流程控制:用来控制代码的执行顺序
顺序结构:代码从上往下按照顺序依次执行
选择结构:根据条件选择性的执行某部分代码
循环结构:反复执行一段代码
一、if选择结构
1、单分支if选择结构
语法:
if(条件){
//代码块
}
规律:
判断条件:
如果条件为true,执行{}里的代码块,代码块执行完,继续往下执行if结构后面的代码,
如果条件为false,则跳过if选择结构,继续往下执行if结构后面的代码
注意:
1)条件必须是布尔值,不管条件写的多么简单还是多么复杂,最终结果都只能是true或
者false,所以条件可以是关系运算符或者三目运算符的运算结果
2)当{}中的代码只有一条语句的时候,{}可以省略不写,在这里,不建议省略
2、双分支if选择结构
语法:
if(条件){
//代码块1
}else{
//代码块2
}
规律:
判断条件:
如果条件为true,执行()后面{}里的代码块1,代码块1执行完,继续往下执行if-else结构后面的代码
如果条件为false,执行else后面{}里的代码块2,代码块2执行完,继续往下执行if-else结构构面的代码
注意:
1.条件必须是布尔值,不管条件写的多么简单还是多么复杂,最终结果都只能是true或
者false,所以条件可以是关系运算符或者三目运算符的运算结果
2.当条件()后面{}中的代码只有一条语句的时候,{}可以省略不写,在这里,不建议省略
3、多分支if选择结构
语法:
if(条件1){
//代码块1;
}else if(条件2){
//代码块2;
}else if(条件3){
//代码块3;
}....
}else if(条件n){
//代码块n;
}else{
//代码块m;
}
规律:
判断条件1:
如果条件1为true,执行代码块1,执行完代码块1,结束整个if-else-if结构,继续往下执行if-else-if结构后面的代码
如果条件1为false,继续往下判断条件2:
如果条件2为true,执行代码块2,执行完代码块2,结束整个if-else-if结构,继续往下执行if-else-if结构后面的代码
如果条件2为false,继续判断条件3:
.........
如果条件n-1为false,继续判断条件n:
如果条件n为true,执行代码块n,执行完代码块n,结束整个if-else-if结构,继续往下执行if-else-if结构后面的代码
如果条件n为false,则执行代码块m,执行完代码m,结束整个if-else-if结构,继续往下执行if-else-if结构后面的代码
注意:
1.从上往下依次判断条件,满足条件就执行对应{}里的代码,执行完就结束整个if-else-if结构
2.如果所有的条件都不满足,则执行else{}里的代码
3.else也可以省略不写,当所有的条件都不满足,又没有else代码的时候,整个if-else-if结构都不执行
4.如果条件的取值范围只有一边,那么条件排列顺序不能任意排列,需要注意顺序,从上往下,条件由严格到宽松
4、嵌套if选择结构
语法:
if(条件1){
//代码块1
if(条件2){
//代码块2
}else{
//代码块3
}
}else{
//代码块4
if(条件3){
//代码块5
}else{
//代码块6
}
}
规律:
判断条件1:
如果条件1为true,执行代码块1,继续判断条件2:
如果条件2为true,执行代码块3,执行完代码块3,结束整个嵌套if结构,继续执行嵌套if结构后面的代码
如果条件2为false,执行代码块4,执行完代码块4,结束整个嵌套if结构,继续执行嵌套if结构后面的代码
如果条件1为false,执行代码块4,继续判断条件3:
如果条件3为true,执行代码块5,执行完代码块5,结束整个嵌套if结构,继续执行嵌套if结构后面的代码
如果条件3为false,执行代码块6,执行完代码块6,结束整个嵌套if结构,继续执行嵌套if结构后面的代码
注意:
1.不管if结构怎么嵌套,嵌套多少层,只需要严格按照If结构的执行规律做就可以了,满足条件就进入{}中执行对应代码,不满足条件,就不能进入{}中执行对应代码
2.理论上,if结构可以任意层次的嵌套(想嵌套多少层就嵌套多少层),一般嵌套不要超过3层,超过3层,代码的可读性不好
二、switch选择结构
语法:
switch(表达式){
case 值1:
代码块1;
break;
case 值2:
代码块2;
break;
.......
case 值n:
代码块n;
break;
default:
代码块m;
break;
}
执行规律:
拿表达式的结果与case后面的值进行匹配,匹配上哪一个case值就执行对应的代码块,执行完代码块执行break语句,结束整个switch结构,继续往下执行switch结构之后的代码
如果所有的case值与表达式的值都不匹配。那么执行default里面的代码块,执行完代码块执行break语句,结束整个switch结构,继续往下执行switch结构之后的代码
注意:
1.表达式的值可以是int、short、byte、char、枚举类型、String(JDK1.7版本及以后版本可以使用)
2.case后面的值不能重复
3.当表达式的值与所有case值不匹配时,执行default里的语句。default语句可以写在任意位置,一般写在末尾位置,default语句也可以省略不写,如果省略不写,表达式的值与所有case值又不匹配,那么真个switch结构就不会执行
4.break的作用是结束整个switch语句,可以省略不写,如果省略不写,会造成“case穿透”现象。该现象可以合理使用。
5.switch选择结构的表达式值是一个固定的值,所以switch选择结构只能处理多分支条件是等值的情况,多重if选择结构,既可以处理条件为等值的情况,也可以处理条件是一个范围的情况
三、获取随机数
Math.random():随机返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
double result1 =Math.random();System.out.println("result1:"+result1);
Math.random()*10:随机返回一个带正号的double值,该值大于等于0.0,且小于10.0
double result2 =Math.random()*10;System.out.println("result2:"+result2);
(int)(Math.random()*10):随机返回一个带正号的int值,该值大于等于0,且小于10——随机获取0-9之间的整数
int result3 = (int)(Math.random()*10);System.out.println("result3:"+result3);
(int)(Math.random()*(num2-num1)+num1):随机生成一个[num1,num2)(num2>num1)之间的int类型的整数
随机生成一个[29,41)之间的int类型的数
int result4 = (int)(Math.random()*(41-29)+29);System.out.print(result4+" ");