Day3:选择结构


java提供了if控制语句和switch语句来实现选择结构。

一、流程控制结构

顺序结构:顺序结构是指程序从上向下依次执行每条语句的结构,中间没有任何的判断和跳转。
选择结构:选择结构是根据条件判断的结果来选择执行不同的代码。选择结构可细分为单分支结构(基本的if选择结构)、双分支结构(if-else选择结构)和多分枝结构(多重if选择结构)。java提供了if控制语句、switch语句来实现选择结构。
循环结构:循环结构是根据判断条件来重复性地执行某段代码。java提供了while语句、do while语句、for语句来实现循环结构。

二、选择结构

1、if控制语句

if控制语句共有3种不同的形式,细分为单分支结构(基本的if选择结构)、双分支结构(if else选择结构)和多分枝结构(多重if选择结构)。
(1)使用if语句实现单分支处理

        if (表达式){
            语句
        }

if是java关键字。
表达式时布尔类型的表达式,其结果为true或false。

if语句的执行步骤如下:
1)对表达式的结果进行判断。
2)如果表达式的结果为真,则执行该语句。
3)如果表达式的结果为假,则跳过该语句。

//张浩java成绩大于90分,老师奖励给他iphone6s
public class Review1 {
    public static void main(String[] args) {
        int score=98;
        /*   double score=90.5;//小精度值不要太多,正常两位到四位*/
        if (score>=90){
            System.out.println("老师奖励给他iphone6s");
        }
    }
}

(2)使用if-else语句实现双分支处理

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

当表达式为真时,执行语句1;表达式为假时,执行else分支的语句2。
if-else语句的执行步骤如下:
1)对表达式的结果进行判断。
2)如果表达式的结果为true,则执行语句1。
3)如果表达式的结果为false,则执行语句2。

// 张浩java成绩大于90分,老师奖励给,小于90分时受到惩罚。
    int score=input.nextInt();
        if (score>90) {
            System.out.println("老师奖励");
        }else{
            System.out.println("惩罚蹲马步一天");
        }

(3)使用多分支if语句实现多分支处理
当有多个条件判断时,需要使用多分支if语句解决。

  if(表达式){
            语句1
        }else if (表达式2){
            语句2
        }else{
            语句3
        }

其中else if的语句可以有多个。
多分支if语句的执行步骤如下:
1)对表达式的结果进行判断。
2) 如果表达式的结果为true,则执行语句1;否则判断表达式2的值。
3)如果表达式的结果为false,则执行语句2;否则执行语句3。

//  张浩java成绩大于90分为优秀,80-90分为良好,60-80分为及格60分以下为不及格
        int score=95;
     /*   double score=90.5;//小精度值不要太多,正常两位到四位*/
        if (score>=90){
            System.out.println("优秀");
        }

        else if (score>=80&&score<90){
            System.out.println("良好");
        }

        else if (score>=60&&score<80){
            System.out.println("及格");}
        else {
            System.out.println("不及格");}

2、嵌套if控制语句

在if控制语句中又包含一个或多个if控制语句的称为嵌套if控制语句。嵌套if控制语句可以通过外层语句和内层语句的协作,来增强程序的灵活性。

        if(表达式){
            语句1
        }else {
            语句2
        }else {
            if (表达式3){
                语句3
            }else{
                语句4
            }
        }

嵌套if控制语句的执行步骤如下:
1)对表达式的结果进行判断。
2) 如果表达式1的结果为true,再对表达式2的结果进行判断。如果表达式2的结果为true,则执行语句1;否则执行语句2。
3)如果表达式1的结果为false,对表达式3的结果进行判断。如果表达式3的结果为true,则执行语句3;否则执行语句4。

// 学校举行运动会,百米赛跑进入10秒内的学生有资格进行决赛,根据性别分别进入男子组和女子组
public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入百米赛跑成绩");
        double second=sc.nextDouble();

        if(second<10){
            System.out.println("恭喜晋级");
            System.out.println("请输入性别");
            String gender=sc.next();
            if (gender.equals("男")){
                System.out.println("您进入到男子组");
            }else
                System.out.println("您进入到女子组");}
            else {
                System.out.println("您没能进入决赛");
            }
            System.out.println("本次比赛结束");
        }

3、switch语句

java还提供了switch语句,用于实现多分支结构。

        switch (表达式1){
            case  常量1:
               语句;
                break;
            case  常量1:
                语句;
                break;
                ......
            default:
                语句;
                break;
}

switch、case、break、default是java关键字。
JDK1.7后,switch后的表达式可以是int,short,byte,char,枚举类型,string类型表达式。
case用于与表达式进行匹配。
break用于终止后续语句的执行。
default是可选的,当其他条件都不匹配时执行default。
switch语句的执行步骤如下:
(1)计算switch后表达式的值。
(2)将计算结果从上至下依次与case后的常量值比较。
(3)如果相等就执行该常量后的代码块,遇到break语句就结束。
(4)如果与任何一个case后的常量都不匹配,就执行default中的语句。

//以出生年份末位两数来作为判断生肖的依据。
     public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        System.out.println("请输入您出生年份后两位");
        byte year=sc.nextByte();
        switch (year){
            case  95:
                System.out.println("猪年");
                break;
            case 96:
                System.out.println("鼠年");
                break;
            case 97:
                System.out.println("牛年");
                break;
            case 98:
                System.out.println("虎年");
                break;
                default:
                    System.out.println("大乱斗");

        }
    }

附:三元表达式

条件?条件的结果为true时整个表达式的值 :条件的结果为false时整个表达时值
boolean?true:false

// 判断一个数是否为偶数
int num=sc.nextInt();
        String result=num%2==0?"偶数":"奇数";
        System.out.println(result);

猜你喜欢

转载自blog.csdn.net/sanjiang521/article/details/107222098