1、选择结构

if语句

if语句格式:

格式1:
    if(比较表达式) {
        语句体;
    }

执行流程:
    先计算比较表达式,看其返回值是true还是false
    如果是true,就执行语句体;
    如果是false,就不执行语句体。


格式2:
    if(比较表达式) {
        语句体1;
    }else {
        语句体2;
    }

执行流程:
    首先计算比较表达式的值,看其返回值是true还是false
    如果是true,就执行语句体1;
    如果是false,就执行语句体2。


格式3:
    if(比较表达式1) {
        语句体1;
    }else if(比较表达式2) {
        语句体2;
    }else if(比较表达式3) {
        语句体3;
    }
    ...
    else {
        语句体n+1;
    }

执行流程:
    首先计算比较表达式1,看其返回值是true还是false,
    如果是true,执行语句体1,if语句结束。
    如果是false,接着计算比较表达式2,看其返回值是true还是false。

    如果是true,执行语句体2,if语句结束。
    如果是false,接着计算比较表达式3,看其返回值是true还是false。
    ...
    如果都是false,就执行语句体n+1。

if语句的注意事项:

A. 比较表达式无论简单还是复杂,结果必须是boolean类型

B. if语句控制的语句体如果是一条语句,大括号可以省略;

如果是多条语句,就不能省略。

建议永远不要省略。

C. 一般来说:有左大括号就没有分号,有分号就没有左大括号

switch语句

switch语句格式:

switch(表达式) {
    case 值1:
        语句体1;
        break;
    case 值2:
        语句体2;
        break;
    ...
    default:
        语句体n+1;
        break;
}

语句解释:
    switch:表示这是switch选择结构
    表达式:这个地方的取值是限定的
        byte,short,int,char
        JDK5以后可以是枚举
        JDK7以后可以是String(字符串)
        JDK7以后:byte,short,int,char,枚举,字符串(String)
    case:后面跟的是要和表达式进行比较的值
    语句体:要执行的代码
    break:表示中断,结束的意思,可以控制switch语句的结束
    default:当所有的值都和表达式不匹配的时候,就执行default控制的语句。其实它就相当于if语句的else。

面试题:
    byte可以作为switch的表达式吗?    答:可以。
    long可以作为switch的表达式吗?    答:不可以。
    String可以作为switch的表达式吗?  答:JDK7以后可以。

switch语句的注意事项:

A. case后面只能是常量,不能是变量,而且,多个case后面的值不能出现重复的。

B. default可以省略吗?

可以省略,但是不建议,因为它的作用是对不正确的的情况给出提示。

C. break可以省略吗?

可以省略,但是结果可能不是我们想要的。
会出现一个现象:case穿透。
最终我们建议不省略

D. default一定要在最后吗?

不是,可以在任何位置,但是建议在最后

E. switch语句的结束条件:

a:遇到break就结束
b:执行到末尾就结束

2、循环结构

循环语句可以满足循环条件的情况下,反复执行某一段代码,这段被重复的代码被称为循环体语句,当反复执行这个循环体时,需要再合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。

循环语句的组成

A:初始化语句:
        一条或者多条语句,这些语句完成一些初始化操作
B:判断条件语句
    这是一个boolean表达式,这个表达式能决定是否执行循环体
C:循环体语句
    这个部分是循环体语句,也就是要多次做的事情
D:控制条件语句
    这个部分在一次执行循环体结束后,下一次循环判断条件执行前执行,通过用于控制循环条件中的变量,使用循环在合适的时候结束
for循环语句
格式:
    for(初始化语句;判断条件语句;控制条件语句) {
        循环体语句;
    }

执行流程
    A:执行初始化语句
    B:执行判断条件语句,看其结果是true还是false
        如果是false,循环结束
        如果是true,继续执行
    C:执行循环体语句
    D:执行控制条件语句
    E:回到B继续

注意事项:
    A:判断条件语句无论简单还是复杂结果都是boolean类型。
    B:循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不可省略。建议永远不要省略。
    C:一般来说,有左大括号就没有分号,有分号就没有左大括号。
while循环语句
基本格式:
while(判断条件语句) {
            循环体语句;
        }

扩展语句:
    初始化语句;
    while(判断条件语句) {
        循环体语句;
        控制条件语句;
    }

while循环和for循环的区别?
1. 使用区别:如果你想在循环结束,继续使用控制条件的那个变量,用while循环,否则用for循环。不知道就用for循环。
2. 因为变量及早的从内存中消失,可以提高内存的使用效率。

do…while语句
基本格式:
    do {
        循环体语句;
    }while(判断条件语句);

扩展格式:
    初始化语句;
    do {
        循环体语句;
        控制条件语句;
    }while(判断条件语句);

for/while/do..while循环语句的区别:

do…while循环至少循环一次循环体。而for,while循环必须先判断条件是否成立,然后决定是否执行循环语句。