Java的选择分支和分支结构

选择结构和分支结构

1. 包的概念

包相当于文件夹,用来方便管理我们的Java文件

包的命名规范:域名倒置,全部小写,不能以点开头或者结尾,可以包含点,每出现一个 点相当于分割一个子文件夹

举例:com.edu.具体的包名

2. if结构

语法: if(布尔表达式){ //代码块1 }

后续代码... 执行流程: 对布尔表达式进行判断。 结果为true,则先执行代码块1,再执行后续代码。 结果为false,则跳过代码块1,直接执行后续代码。

package com.edu.test1;
​
import java.util.Scanner; // 导包
/**
 *  需求:根据用户输入的年龄判断是否成年
 * 
 */
public class Test2 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in); // 红线错误 代码不能执行  
        
        System.out.println("请输入您的年龄");
        
        int age = input.nextInt();
        
        System.out.println("您输入的年龄是:" + age);
        
        if(age >= 18){
            System.out.println("恭喜你,成年了");
        }
        
        
        System.out.println("程序结束");
        
    }
}
​
package com.edu.test1;
​
import java.util.Scanner;
​
/**
 *  需求:根据学生成绩判断是否可以获得奖励
 *  如果
 *  Java成绩大于90 并且 数据库成绩 大于80获得奖励
 *  或者
 *  Java成绩大于75 并且 JS成绩等于100 获得奖励
 * 
 *  奖励苹果12袋
 *
 */
public class Test3 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in); // 鼠标移动到红线位置 选择导包即可
        
        System.out.println("请输入Java成绩");
        
        int javaScore = input.nextInt();
        
        System.out.println("请输入JS成绩");
        
        int javaScriptScore = input.nextInt();
        
        System.out.println("请输入数据库成绩");
        
        int mysqlScore = input.nextInt();
//      选中代码  ctrl + / 注释 或者取消注释
//      Java成绩大于90 并且 数据库成绩 大于80获得奖励
//      或者
//      Java成绩大于75 并且 JS成绩等于100 获得奖励
        if((javaScore > 90 && mysqlScore >80) ||    (javaScore > 75 && javaScriptScore == 100)) {
            System.out.println("恭喜你,奖励苹果12袋!");
        }
        
        System.out.println("程序结束");
        
        
        
        
        
        
    }
}
​

3. if-else结构

语法: if(布尔表达式){ //代码块1 }else{ //代码块2 } 后续代码... 执行流程: 对布尔表达式进行判断。 结果为true,则先执行代码块1,再退出整个结构,执行后续代码。 结果为false,则先执行代码块2,再退出整个结构,执行后续代码。

else不能单独出现的,必须结合if

package com.edu.test2;
​
import java.util.Scanner;
​
/**
 *  根据用户输入年龄 判断是否成年 进行相应提示
 * 
 */
public class Test2 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in); // ctrl + 1 回车导包
        
        System.out.println("请输入年龄");
        
        int age = input.nextInt();
        
        if(age>= 18) {
            System.out.println("恭喜你,成年了");
        }else {
            System.out.println("未成年");
        }
    
        System.out.println("程序结束");
    }
    
}
​
package com.edu.test2;
​
import java.util.Scanner;
​
/**
 *  需求:根据学生成绩判断是否可以获得奖励
 *  如果
 *  Java成绩大于90 并且 数据库成绩 大于80获得奖励
 *  或者
 *  Java成绩大于75 并且 JS成绩等于100 获得奖励
 * 
 *  奖励苹果12袋
 * 
 *  如果成绩不符合  进行鼓励
 * 
 */
public class Test3 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in); // 鼠标移动到红线位置 选择导包即可
        
        System.out.println("请输入Java成绩");
        
        int javaScore = input.nextInt();
        
        System.out.println("请输入JS成绩");
        
        int javaScriptScore = input.nextInt();
        
        System.out.println("请输入数据库成绩");
        
        int mysqlScore = input.nextInt();
        
        
        if((javaScore > 90 && mysqlScore >80) ||    (javaScore > 75 && javaScriptScore == 100)) {
            System.out.println("恭喜你,奖励苹果12袋!");
        }else {
            System.out.println("继续加油");
        }
        
        System.out.println("程序结束");
        
        
        
        
        
        
    }
}
​

4. 多重if结构

语法: if(布尔表达式1){ //代码块1 }else if(布尔表达式2){ //代码块2 }else if(布尔表达式3){ //代码块3 }else{ //代码块4 }

多重if中 最后的else根据需求是否编写

执行流程: 表达式1为true,则执行代码块1,再退出整个结构。

表达式2为true,则执行代码块2,再退出整个结构。

表达式3为true,则执行代码块3,再退出整个结构。

以上均为false,则执行代码块4,再退出整个结构。

注意:相互排斥,有一个为true,其他均不再执行, 适用于区间判断。

package com.edu.test3;
​
import java.util.Scanner;
​
/**
 *  多重if  属于多选1  
 *  适用于区间判断
 * 
 *  需求:
 *  如果成绩
 *      大于90分 优秀
 *      大于80分良好
 *      大于70分 中等
 *      大于等于60分 及格
 *      小于60分 不及格
 * 
 */
public class Test1 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        
        System.out.println("请输入你的分数");
        
        int score =  input.nextInt();
        
        if(score > 90) {
            System.out.println("优秀");
        }else if(score > 80) {
            System.out.println("良好");
        }else if(score > 70) {
            System.out.println("中等");
        }else if(score >= 60) {
            System.out.println("及格");
        }else {
            System.out.println("不及格");
        }
        
        System.out.println("=====================================");
        if(score >= 0 && score < 60) {
            System.out.println("不及格");
        }else if(score >= 60 && score <= 70) {
            System.out.println("及格");
        }else if(score > 70 && score <= 80){
            System.out.println("中等");
        }else if(score >80 && score <= 90 ) {
            System.out.println("良好");
        }else if(score > 90 && score <= 100){
            System.out.println("优秀");
        }else {
            System.out.println("输入分数有误");
        }
        
        System.out.println("程序结束");
        
        
        
    }
}
​

5. 嵌套if

语法: if(外层表达式){ if(内层表达式){ //内层代码块1 }else{ //内层代码块2 } }else{ //外层代码块 }

执行流程: 当外层条件满足时,再判断内层条件。

注意: 一个选择结构中,可嵌套另一个选择结构。 嵌套格式正确的情况下,支持任意组合。

package com.edu.test4;
​
import java.util.Scanner;
​
/**
 *  嵌套if
 *  一个完整if结构中  再嵌套另外一个if结构 
 * 
 *  需求:学校举行百米跑步,时间小于13秒可以进入决赛,然后再根据性别进行分组
 * 
 */
public class Test1 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        
        System.out.println("请输入你的跑步时间");
        
        int time = input.nextInt();
    
        if(time < 13) {
            
            
            System.out.println("请输入你的性别");
            
            String sex = input.next();
            
            // 可以进入决赛
            // equals() 方法    
            if(sex.equals("男")) {
                System.out.println("恭喜你,进入男子组");
            }else if(sex.equals("女")){
                System.out.println("恭喜你,进入女子组");
            }else {
                System.out.println("性别不合适");
            }
        }else {
            System.out.println("继续加油,下一届继续参加");
        }
        
        System.out.println("程序结束");
        
        
    }
}
​

6. switch 结构

语法: switch(变量|表达式){ case 值1: 逻辑代码1; case 值2: 逻辑代码2; case 值n: 逻辑代码n; default: 未满足时的逻辑代码; }

可判断的类型: byte、short、int、char、String(JDK7+)枚举     

使用long时会转换为int造成精度损失,因此不可以使用long

执行流程: 如果变量中的值等于值1,则执行逻辑代码1。 如果变量中的值等于值2,则执行逻辑代码2。 如果变量中的值等于值n,则执行逻辑代码n。 如果变量中的值没有匹配的case值时,执行default中的逻辑代码。

注意:所有case的取值不可相同。

switch结构中需要根据需求添加break关键字,default关键字位置不固定,但是要求写在末尾,提高阅读性,并且default之后必须写上break

package com.edu.test5;
​
import java.util.Scanner;
​
/**
 *  switch结构
 *  支持的数据类型:byte short int char String(JDK7+) 枚举
 * 
 *  需求:根据名次进行不同的奖励
 *  第一名:夏令营一次
 *  第二名:苹果12袋
 *  第三名:笔记本一本
 *  第四名:口头表扬一次
 *  其他:继续努力
 * 
 */
public class Test1 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
    
        System.out.println("请输入你的名次");
        
        int num = input.nextInt();
        
        switch(num) {
            case 1:
                System.out.println("夏令营");
                break;
            case 2:
                System.out.println("苹果12袋");
                break;
            case 3:
                System.out.println("笔记本一本");
                break;
            case 4:
                System.out.println("口头表扬一次");
                break;
            default:
                System.out.println("继续加油");
                break;
        }
        
        System.out.println("程序结束");
    }
}
​

7. switch和多重if应用场景区分

多重if用于某个值处于连续的区间的情况

switch用于处理某个值属于等值的情况

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值