Java基本语法——流程控制语句

说到流程控制语句,相信大家都能第一时间想到:顺序、分支、循环这三个基本结构。当然也有的地方回说成是:顺序、选择、循环,不过意思是一样的。
那么为什么这三个结构会这么重要呢?因为在1996年,计算机科学家BohmJacopini证明了是这样的事实:任何简单或复杂的算法都可以由顺序结构、选择结构、循环结构这三种及本机构组合而成。所以这三种结构也就被成为程序设计的三种基本结构。也就是我们本次介绍的流程控制语句了。
正如之前所说,流程控制语句大体上分为以下三种:

顺序结构

顺序结构是一种思想,即表示程序中的各种操作是按照它们在源代码中的排列顺序依次执行的,这种结构的特点是:程序从上到下依次执行,直到到达最后一行代码,所以称为顺序结构。这里顺序结构就不进行代码演示

选择结构

选择结构分为以下两种进行介绍:

1. if语句
if语句有三种用法
(1)if(){…}
Java基本语法——流程控制语句
在这种结构中,满足if中的条件时会执行内部的语句。不满足什么也不会做,会依旧向下执行,即单选择
(2)if(){…}else{…}
Java基本语法——流程控制语句
在这里我们可以看到,只有两句话输出,也就是当满足if条件时会执行if中的内容,不满足时会执行另一个内容。可以理解为如果……否则的形式,即双选择。
(3)if(){…}else if(){…}
Java基本语法——流程控制语句
和之前的双选择类似,不通点在于可以一直往下延伸,即变成多个if嵌套的形式,可以理解为如果……否则如果……(否则)的形式,由此可以看出,越往后筛选的条件越细致。最里面的那个if执行的时候条件一定是也满足外层if。正如上图所述,满足输出“a是0”的时候一定也满足a既不大于0也不小于0的条件,即多选择。
在使用if语句的时候需要注意以下几点:
如果if里面的代码只有一句,则if后面的{}可以省略不写(else也适用)
else默认会与最近的一个if相匹配,所以需要注意if的{}书写

2. switch语句
switch语句也叫做开关语句,用于进行多种情况的选择情况,格式为:
Java基本语法——流程控制语句
其中switch的()中是提供选择的变量名,该变量的类型可以是:byte、short、char、int四种整数类型,枚举类型以及java.long.String类型(java7之后才允许),不可以是boolean类型
case后面表示的是变量的值,如case 1:就是当变量值为1的时候会执行
default表示当不满足所有的case选项是默认执行的区域
至于为什么要在没一句后面加上一句break,是因为程序是由上向下执行的,所以如果正常不加的话,就会出现这种情况:
Java基本语法——流程控制语句这不是我们需要的情况,我们只需要执行相对应的那一块就可以了,break可以帮助我们很好的解决这个问题,当执行到break语句时,会跳出当前的流程,这就是关于switch的用法。

循环结构

循环结构基础的有三种,后面的增for循环这里不进行讨论
在介绍循环结构之前我们首先需要了解一下循环结构的一些特点,循环的几个要素:循环变量的初始化、循环的条件(以循环变量为基础)、循环变量的改变

  1. while循环
    while循环可以理解为:当…时,做…。也就是说会先判断一下是否满足条件,如果满足则执行循环体,否则不执行循环体。语法如下:
    Java基本语法——流程控制语句
    在这里我们介绍一下continue,break的区别:
    Java基本语法——流程控制语句
    continue的意思是跳过本次循环,在此例中可以理解为当a=4的时候跳过,从a=5开始执行
    Java基本语法——流程控制语句
    break的意思是终止本次循环,结束当前语句。本例中则是当a=4时结束循环,所以结果只有:1 2 3三个数

  2. do……while循环
    Java基本语法——流程控制语句
    do……while和while……语句很相似,不过逻辑语义不同,可以利用这一点来进行理解,do……while……是先执行一次循环体,在进行判断是否满足条件,若满足再执行一次,不满足则不进行循环

  3. for循环
    for循环的格式是这样的

    1. for(初始化条件1;判断条件2;自增条件3){
    2. 代码4;
    3. }
    

for循环的执行顺序是这样的,先执行条件1进行初始化,然后判断条件2是否满足,满足执行代码4,不满足结束循环。然后执行自增条件3,判断条件2是否满足,满足执行代码4,不满足结束循环……依次循环下去。
Java基本语法——流程控制语句
这里补充一点,for循环括号里面的条件1~3都是可以选择性省略的,如果全部省略则会成为死循环,需要在内部控制跳出。其他循环也可能成为死循环,所以在使用时要千万小心

以上就是我所介绍的所有关于流程控制语句的知识点,在这里对什么时候使用什么循环做一个小总结:
当想要先执行一次循环时,使用do-while循环
当知道循环次数的时候,使用for循环
其实三种循环无论怎么使用都是可以的,不过根据条件使用不同的方法可能会使复杂的问题简单化