1、流程控制语句

  Java的流程控制语句主要包括三大类:顺序结构、分支结构和循环结构。

2、顺序结构

  顺序结构语句是按照代码的顺序,从上往下执行。

public static void main(String[] args){ 
    System.out.println(1); 
    System.out.println(2); 
    System.out.println(3); 
}

结果输出:

1
2
3

3、分支结构

  分支结构主要包括两种类型:if -- else if -- else、switch

3.1、if语句

  首先判断关系表达式看其结果是true还是false,如果是true就执行语句体 ,如果是false就不执行语句体 。

Java流程控制语句_第1张图片

3.2、if -- else语句

  首先判断关系表达式看其结果是true还是false,如果是true就执行语句体1,如果是false就执行语句体2。
Java流程控制语句_第2张图片

3.3、if -- else if -- else语句

  首先判断关系表达式1,看其结果是true还是false。如果是true就执行语句体1,如果是false就继续判断关系表达式2,看其结果是true还是false。如果是true就执行语句体2,如果是false就继续判断关系表达式,看其结果是true还是false …如果没有任何关系表达式为true,就执行语句体n+1。
Java流程控制语句_第3张图片

3.4、三元运算符

  三元运算符格式:(表达式) : 表达式为True时返回的内容 ? 表达式为False时返回的内容。if语句可以实现与三元运算符进行互换:

public static void main(String[] args) { 
    int a = 10; 
    int b = 20; 
    //定义变量,保存a和b的较大值 
    int max; 
    if(a > b) { 
        max = a; 
    } else { 
        max = b; 
    }
    //可以上述功能改写为三元运算符形式 
    max = a > b ? a:b; 
}

3.5、switch语句

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

  执行流程首先计算出表达式的值,其次和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
  switch语句中,表达式的数据类型可以是byte,short,int,char,enum(枚举),JDK7后可以接收字符串。
  在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束。

4、循环结构

  循环结构包括三种类型:for循环,while循环,do...while...循环

4.1、for循环

格式:

for(初始化表达式①; 布尔表达式②; 步进表达式④){ 
    循环体③ 
}

执行顺序为1234 --> 234 --> 234 直到2为false为止。

4.2、while循环

格式:

初始化表达式① 
while(布尔表达式②){ 
    循环体③ 
    布尔表达式④ 
}

执行顺序为1234 --> 234 --> 234 直到2为false为止。

4.3、do...while循环

格式:

初始化表达式① 
do{ 
    循环体③ 
    布尔表达式④ 
}while(布尔表达式②);

执行顺序为134 --> 234 --> 234 直到2为false为止。

4.4、break和continue

break:跳出整个循环
continue:跳出当前循环

5、小小的算法题

5.1、输出200以内的素数

/**
 * @author RuiMing Lin
 * @date 2020-03-18 13:35
 */
public class Demo1 {
    public static void main(String[] args) {
        int count = 0;      // 定义一个计数器
        for (int i = 2; i <= 200; i++) {     // 对2到200之间的数进行遍历
            boolean flag = true;        // 设置素数的指示器
            for (int j = 2; j < i - 1; j++) {
                if (i % j == 0) {
                    flag = false;      // 如果不是素数则flag为false
                    break;
                }
            }
            if (flag) {        // 如果是素数则输出
                System.out.println(i);
                count++;
            }
        }
        System.out.println("共有" + count + "个素数");
    }
}

5.2、水仙花数

/**
 * @author RuiMing Lin
 * @date 2020-03-18 13:41
 */
public class Demo2 {
    public static void main(String[] args) {
        int count = 0;
        for (int i = 100; i <= 1000; i++) {
            int ge = i % 10;
            int shi = i / 10 % 10;
            int bai = i / 100 % 10;
            if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i) {
                System.out.println("第" + ++count + "个水仙花数:" + i);
            }
        }
    }
}

有错误的地方敬请指出,欢迎大家评论区或者私信交流!每日持续更新Java、Python、大数据技术,请大家多多关注!