分支语句

分支语句

1.流程控制

  1.1 流程控制分类

      • 顺序结构
      • 分支结构if,switch
      • 循环结构for,while,do...while

  1.2 顺序结构

   顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数代码都是这样执行的。

   顺序结构执行流程图:

                                                              

 

他是从上往下依次执行的。

 

 代码示例:

package com.scxh.day01;

public class Demo01Order {
    public static void main(String[] args) {
        System.out.println("开始");
        System.out.println("语句A");
        System.out.println("语句B");
        System.out.println("语句C");
        
        System.out.println("结束");
    }
}

运行结果:

   

 

2. if语句

  2.1 if语句格式1

格式:
if(关系表达式){
  语句体;      
}

执行流程:

① 首先计算关系表达式的值

② 如果关系表达式的值为true就执行语句体

③ 如果关系表达式的值为false就不执行语句体

④ 继续执行后面的语句内容

 

 代码示例:

package com.scxh.day01;

public class Demo01If {
    public static void main(String[] args) {
        System.out.println("开始");

        //定义两个变量
        int a = 10;
        int b = 20;


        //需求:判断a和b的值是否相等,如果相等,就在控制台输出:a 等于 b
        if(a == b){
            System.out.println("a等于b");
        }

        //需求:判断a和c的值是否相等,如果相等,就在控制台输出:a等于c
        int c = 10;
        if(a == c){
            System.out.println("a等于c");
        }
        System.out.println("结束");
    }
}

运行结果:

 

  2.2  if语句格式2

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

执行流程:

①首先计算关系表达式的值

② 如果关系表达式的值为true就执行语句体1

③ 如果关系表达式的值为false就执行语句体2

④ 继续执行后面的语句内容

 

 代码示例:

package com.scxh.day01;

public class Demo02If {
    public static void main(String[] args) {
        System.out.println("开始");

        //定义两个变量
        int a = 10;
        int b = 20;

        //需求:判断a是否大于b,如果是,在控制台输出:a的值大于b;如果不是,在控制台输出:a的值不大于b
        if (a > b){
            System.out.println("a的值大于b");
        }else {
            System.out.println("a的值不大于b");
        }
        System.out.println("结束");
    }
}

运行结果:

 案例:奇偶数

需求:任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数。

分析:

① 为了体现任意给出一个整数,采用键盘录入一个数据,使用键盘录入功能需要包

import java.util.Scanner;

创建对象

Scanner sc = new Scanner(System.in);

接收数据

int number = sc.nextInt();

②判断整数是奇数还是偶数要分两种情况经行判断,所以使用if…else结构

if () {
}else{
}

③判断是否偶数需要用取余运算符来实现该功能number%2 == 0

if(number % 2 == 0) {
}else{
}

④根据判定情况,在控制台输出对应内容

if(number % 2 == 0){
  System.out.println(number+"是偶数")
}else{
  System.out.println(number+"是奇数")  
}

代码示例:

package com.scxh.day01;

import java.util.Scanner;
public class Demo02If {
    public static void main(String[] args) {

//        为了体现任意给出一个整数,采用键盘录入一个数据,使用键盘录入功能需要包
//        创建对象
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数:");
//        接收数据
        int number = sc.nextInt();
//        判断整数是奇数还是偶数要分两种情况经行判断,所以使用if…else结构
//        判断是否偶数需要用取余运算符来实现该功能number%2 == 0
//        根据判定情况,在控制台输出对应内容
        if(number%2 == 0){
            System.out.println(number + "是偶数");
        }else {
            System.out.println(number + "是奇数");
        }

    }
}

输出结果:

 

   2.3 if语句3

格式:
if(关系表达式1){
    语句体1;
}else if(关系表达式2){
    语句体2;
}
…
else{
    语句体n+1;
}

执行流程:

①首先计算关系表达式1的值

② 如果值为true就执行语句体1;如果关系表达式的值为false就执行语句体2

③ 如果值为true就执行语句体2;如果关系表达式的值为false就执行语句体3

④ …

⑤如果没有任何关系表达式为true,就执行语句体n+1。

 

 代码示例:

package com.scxh.day01;

import java.util.Scanner;
public class Demo03If {
    public static void main(String[] args) {
        System.out.println("开始");
        //需求:键盘录入一个星期数(1,2,3,4,5,6,7),输出对应的星期一,星期二,星期三,……,星期日
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个星期数(1-7):");
        int week = sc.nextInt();
        if(week == 1){
            System.out.println("星期一");
        }else if(week == 2){
            System.out.println("星期二");
        }else if(week == 3){
            System.out.println("星期三");
        }else if(week == 4){
        System.out.println("星期四");
        }else if(week == 5){
        System.out.println("星期五");
        }else if(week == 6) {
            System.out.println("星期六");
        }else{
            System.out.println("星期日");
        }
        System.out.println("结束");
    }
}

输出结果:

 

3.switch语句

  3.1 switch语句格式

格式:
switch(表达式){
    case 值1:
                    语句体1;
                    breakcase 值2:
                    语句体2;
                    break;
…
default:
                    语句体n+1;
                    [break;]
}

格式说明:

  • 表达式:取值为byte、short、int、char、JDK5以后可以是枚举,JDK7以后可以是String.
  • case:后面跟的是要和表达式进行比较的值。
  • break:表示中断,结束的意思,用来结束switch语句,
  • default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。

执行流程

① 首先计算表达式的值。

② 依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。

③ 如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后结束掉程序。’

 

代码示例:

package com.scxh.day01;

import java.util.Scanner;
public class Demo01Switch {
    public static void main(String[] args) {
        System.out.println("开始");

        //需求:键盘录入一个星期数(1,2,3,4,5,6,7),输出对应的星期一,星期二,星期三,……,星期日
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入一个星期数(1-7):");
        int week = sc.nextInt();

        switch (week){
            case 1:
                System.out.println("星期一");
                break;
            case 2:
                System.out.println("星期二");
                break;
            case 3:
                System.out.println("星期三");
                break;
            case 4:
                System.out.println("星期四");
                break;
            case 5:
                System.out.println("星期五");
                break;
            case 6:
                System.out.println("星期六");
                break;
            case 7:
                System.out.println("星期日");
                break;
            default:
                System.out.println("你输入的星期数有误");
                break;
        }
        System.out.println("结束");
    }

}

运行结果:

 

 注意事项:在switch语句当中,如果case控制的语句体后面不写break,将出现穿透现象,在不判断下一个case值的情况下,向下运行,直到遇到break,或者整体switch语句结束。

代码示例:

package com.scxh.day01;

import java.util.Scanner;
public class Demo01Switch {
    public static void main(String[] args) {
        System.out.println("开始");
        //需求:键盘录入一个星期数(1,2,3,4,5,6,7),输出对应的星期一,星期二,星期三,……,星期日
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个月份:");
        int month = sc.nextInt();
        //case穿透
        switch (month){
            case 1:
            case 2:
            case 12:
                System.out.println("冬季");
                break;
            case 6:
            case 7:
            case 8:
                System.out.println("夏季");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println("秋季");
                break;
            case 3:
            case 4:
            case 5:
                System.out.println("春季");
                break;
            default:
                System.out.println("你输入的月份有误");
                break;
        }
        System.out.println("结束");
    }

}

运行结果:

 

posted @ 2022-01-22 21:24  麟轩  阅读(107)  评论(0编辑  收藏  举报