流程控制

流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。

顺序结构
程序从上到下逐行地执行,中间没有任何判断和跳转。
分支结构
根据条件,选择性地执行某段代码。
有if…else和switch-case两种分支语句。 两者可以互相嵌套。
循环结构
根据循环条件,重复性的执行某段代码。
有while、do…while、for三种循环语句。
注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素。


If-else结构:(条件判断结构)

image.pngimage.png
else结构是可选项,与就近的if配对。
若if-else结构中的执行语句为单行,可省略大括号,但不建议


Switch-case结构

image.png

使用说明

  • 根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则进入相应case结构中,调用其执行语句。
  • 当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch-case结构末尾结束为止。
  • 关键字break为可选项,可以使用在switch-case结构中(也可以使用在其他结构中),表示一旦执行到此关键字,就跳出switch-case结构
  • switch结构中的表达式,只能是如下的6种数据类型之一

    1. byte shortcharint、枚举类型(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之间不能出现重名变量
    1. switch(month){
    2. case 12:
    3. sumDays += 30;//11
    4. case 11:
    5. sumDays += 31;//10
    6. case 10:
    7. sumDays += 30;//9
    8. case 9:
    9. sumDays += 31;//8
    10. case 8:
    11. sumDays += 31;//7
    12. case 7:
    13. sumDays += 30;//6
    14. case 6:
    15. sumDays += 31;//5
    16. case 5:
    17. sumDays += 30;//4
    18. case 4:
    19. sumDays += 31;//3
    20. case 3:
    21. sumDays += 28;//2
    22. case 2:
    23. sumDays += 31;//1月
    24. case 1:
    25. sumDays += day;
    26. }

如何获取一个随机数:10 - 99

  1. int value = (int)(Math.random() * 90 + 10);
  2. // [0.0,1.0)
  3. System.out.println(value);
  4. //公式:[a,b] : (int)(Math.random() * (b - a + 1))+ a