从零开始学java(九)--控制语句与选择结构

  • 流程控制语句
  • 选择结构
  • if单选择结构
  • if双选择结构
  • if-else if-else多选择结构
  • switch多选择结构


流程控制语句

流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。控制语句分为三类:顺序、选择和循环。

  • “顺序结构”代表“先执行a,再执行b”的逻辑。比如,先找个女朋友,再给女朋友打电话;先订婚,再结婚;
  • “选择结构”代表“如果…,则…”的逻辑。比如,如果女朋友来电,则迅速接电话;如果看到红灯,则停车;
  • “循环结构”代表“如果…,则再继续…”的逻辑。比如,如果没打通女朋友电话,则再继续打一次; 如果没找到喜欢的人,则再继续找。

很神奇的是,三种流程控制语句就能表示所有的事情!不信,你可以试试拆分你遇到的各种事情。实际上,任何软件和程序,小到一个练习,大到一个操作系统,本质上都是由“变量、选择语句、循环语句”组成。

这三种基本逻辑结构是相互支撑的,它们共同构成了算法的基本结构,无论怎样复杂的逻辑结构,都可以通过它们来表达。“选择结构”和“循环结构”组成的程序可以解决全部的问题,所以任何一种高级语言都具备上述两种结构。

选择结构

选择结构用于判断给定的条件,然后根据判断的结果来控制程序的流程。

主要的选择结构有:if选择结构和switch多选择结构。有如下结构:

  • if单选择结构
  • if-else双选择结构
  • if-else if-else多选择结构
  • switch结构

if单选择结构

语法格式:

//布尔表达式为真,则执行代码块中的内容
if(布尔表达式){
    语句块
}

if单选择结构流程图

java中的控制语句有哪几种 java控制语句有什么用_java


if单选择结构示例

public class Test1 {
    public static void main(String[] args) {
        //通过掷三个骰子看看今天的手气如何?
        int i = (int)(6 * Math.random()) + 1;//通过Math.random()产生随机数
        int j = (int)(6 * Math.random()) + 1;
        int k = (int)(6 * Math.random()) + 1;
        int count = i + j + k;
        //如果三个骰子之和大于15,则手气不错
        if(count > 15) {
            System.out.println("今天手气不错");
        }
        //如果三个骰子之和在10到15之间,则手气一般
        if(count >= 10 && count <= 15) { //错误写法:10<=count<=15
            System.out.println("今天手气很一般");
        }
        //如果三个骰子之和小于10,则手气不怎么样
        if(count < 10) {
            System.out.println("今天手气不怎么样");
        }
        System.out.println("得了" + count + "分");
    }
}

运行结果:

java中的控制语句有哪几种 java控制语句有什么用_算法_02

注意事项

  • Math类的使用
  1. java.lang包中的Math类提供了一些用于数学计算的方法。
  2. Math.random()该方法用于产生一个0到1区间的double类型的随机数,但是不包括1。 int i = (int) (6 * Math.random()); //产生:[0,5]之间的随机整数
  • 雷区
  1. 如果if语句不写{},则只能作用于后面的第一条语句。
  2. 强烈建议,任何时候都写上{},即使里面只有一句话!

if双选择结构

语法格式

if(布尔表达式){
 语句块1
}else{
       语句块2
}

if-else双选择结构流程图:

java中的控制语句有哪几种 java控制语句有什么用_java_03

if-else if-else多选择结构

语法结构

if(布尔表达式1) {
语句块1;
} else if(布尔表达式2) {
语句块2;
}……
else if(布尔表达式n){
    语句块n;
} else {
    语句块n+1;
}

if-else if-else多选择结构流程图:

java中的控制语句有哪几种 java控制语句有什么用_算法_04

switch多选择结构

语法格式

switch (表达式) {
case 值1:   语句序列1;     [break];//[break]表示break可选择
case 值2:	语句序列2;		[break];
case ....
[default:    默认语句;]//可选择
}

switch语句会根据表达式的值从相匹配的case标签处开始执行,一直执行到break语句处或者是switch语句的末尾。如果表达式的值与任一case值不匹配,则进入default语句(如果存在default语句的情况)。

根据表达式值的不同可以执行许多不同的操作。switch语句中case标签在JDK1.5之前必须是整数(long类型除外)或者枚举,不能是字符串,在JDK1.7之后允许使用字符串(String)。

当布尔表达式是等值判断的情况,可以使用if-else if-else多选择结构或者switch结构,如果布尔表达式区间判断的情况,则只能使用if-else if-else多选择结构。