流程控制
流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。
顺序结构
程序从上到下逐行地执行,中间没有任何判断和跳转。
分支结构
根据条件,选择性地执行某段代码。
有if…else和switch-case两种分支语句。 两者可以互相嵌套。
循环结构
根据循环条件,重复性的执行某段代码。
有while、do…while、for三种循环语句。
注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素。
If-else结构:(条件判断结构)
else结构是可选项,与就近的if配对。
若if-else结构中的执行语句为单行,可省略大括号,但不建议
Switch-case结构
使用说明
- 根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则进入相应case结构中,调用其执行语句。
- 当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch-case结构末尾结束为止。
- 关键字break为可选项,可以使用在switch-case结构中(也可以使用在其他结构中),表示一旦执行到此关键字,就跳出switch-case结构
switch结构中的表达式,只能是如下的6种数据类型之一:
byte 、short、char、int、枚举类型(JDK5.0新增)、String类型(JDK7.0新增)
case 之后只能声明常量。不能声明范围。
- default结构是可选的,相当于if-else结构中的else. 而且位置是灵活的。
- 如果switch-case结构中的多个case的执行语句相同,则可以考虑进行合并。
- 凡是可以使用switch-case的结构,都可以转换为if-else。反之,不成立。
- 使用分支结构时,当发现既可以使用switch-case,(同时,switch中表达式的取值情况不太多), 又可以使用if-else时,我们优先选择使用switch-case。
原因:switch-case执行效率稍高。
- 各case之间不能出现重名变量
switch(month){
case 12:
sumDays += 30;//11
case 11:
sumDays += 31;//10
case 10:
sumDays += 30;//9
case 9:
sumDays += 31;//8
case 8:
sumDays += 31;//7
case 7:
sumDays += 30;//6
case 6:
sumDays += 31;//5
case 5:
sumDays += 30;//4
case 4:
sumDays += 31;//3
case 3:
sumDays += 28;//2
case 2:
sumDays += 31;//1月
case 1:
sumDays += day;
}
如何获取一个随机数:10 - 99
int value = (int)(Math.random() * 90 + 10);
// [0.0,1.0)
System.out.println(value);
//公式:[a,b] : (int)(Math.random() * (b - a + 1))+ a