选择结构

选择结构

选择结构和循环结构可以称为是界定一个语言到底是否是编程语言的标准。

1. 了解流程控制语句

流程控制语句:实现对程序的执行流程进行控制的一种语句。(自上而下执行<顺序流程>、转向、分支…)

  • **顺序流程:**程序默认就是这种流程语句,自上而下挨个执行。

  • 选择结构:分支

  • 循环结构:

2. 掌握基础if选择结构

学习选择结构的原因:

  1. 使用三元运算符只能解决简单的判断情况
  2. 如果出现了复杂的业务处理 我们需要更多的解决方案

3. 掌握互斥if选择结构

if(条件表达式){
    // 条件成立执行的内容
}else{
    // 条件不成立执行的内容
}
public class Demo1 {

	public static void main(String[] args) {

		// 创建对象
		Scanner input = new Scanner(System.in);
		System.out.print("请输入韩迪的Java考试成绩:");
		double score = input.nextDouble();
		
		// 套语法
		if(score > 90) {
			System.out.println("送他一辆 哈士奇!");
		}else {
			System.out.println("送他一只小野驴!");
		}
	}

}

4. 掌握多重if选择结构

if(条件表达式1){
    // 成立代码
}else if(条件表达式2){
    // 成立代码
}else if(...){
    // ...
}else{ // 可以省略 建议添加
    // 如果上述条件都不满足 可以执行
}
/**
 * 多重if改造
 * @author Charles7c
 * 2019年9月9日 下午4:12:23
 */
public class Demo2 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		// 提示输入学生成绩
		System.out.print("请输入王靖泽的考试成绩:");
		double score = scan.nextDouble();
		
		// 套语法
		if(score >= 80) {
			System.out.println("优秀!");
		}else if(score >= 60) {
			System.out.println("良好!");
		}else {
			System.out.println("蒂花之秀!");
		}
	}

}
/**
 * 需求:
 * 	模拟中奖情况
 *  买了张彩票,根据不同的中奖情况,安排余生计划
 *  >= 500w以上  买辆迈巴赫
 *  >= 100w以上  买辆兰博基尼
 *  >= 10w以上 买辆五菱宏光
 *  >= 1w以上 买辆爱玛电动车
 *  不买了 继续买彩票
 * @author Charles7c
 * 2019年9月9日 下午4:16:15
 */
public class Demo3 {

	public static void main(String[] args) {

		Scanner input = new Scanner(System.in);
		System.out.print("请输入您中奖的金额:");
		double money = input.nextDouble();
		
		// 判断
		// 单位(w)
		if(money >= 500) {
			System.out.println("买辆迈巴赫!");
		}else if(money >= 100) {
			System.out.println("买辆兰博基尼");
		}else if(money >= 10) {
			System.out.println("买辆五菱宏光");
		}else if(money >= 1) {
			System.out.println("买辆爱玛电动车");
		}else {
			System.out.println("继续买彩票!");
		}
	}

}

注意事项:

  • 多重if中的else if必须配合if使用,不能单独出现,它可以出现多次
  • 多重if中可选添加else代码块
  • 多重if中代码是自上而下执行判断的,只要有一个条件满足,其余的条件就不再执行(范围大的放在上方)

5. 掌握嵌套if选择结构(非Java的if必修语法)

/**
 * 需求:中秋节回老家
 * 1.买票
 * 2.检票
 * 3.安检
 * @author Charles7c
 * 2019年9月9日 下午4:45:53
 */
public class Demo1 {

	public static void main(String[] args) {
		System.out.println("正在买票中~~~");
		// 0无票 1有票
		int hasTicket = 1;
		// 不超过9cm就可以通过安检
		int lengthOfKnife = 8;
		
		System.out.println("正在检票中~~~");
		// 判断
		if(hasTicket == 1) { // 有票
			System.out.println("准备安检~~~");
			// 判断是否能通过安检
			if(lengthOfKnife < 9) {
				System.out.println("准备上车!");
			}else {
				System.out.println("这是通向幼儿园的车!你的刀不允许出现!");
			}
		}else { // 无票
			System.out.println("滴滴滴~~~无票乘客!");
		}
	}

}
  • 嵌套if可以无限嵌套,只要需求需要则可以继续编写
  • 嵌套if建议最好不超过3层,层级过多则容易导入代码阅读困难
  • 嵌套if,随意嵌套if语法(基础if、互斥if、多重if)

6. 掌握switch选择结构(前期控制台阶段用的比较多)

switch(表达式){
    case 常量1:
        // 代码
        break;
    case 常量2:
        // 代码
        break;
    case 常量....:
       	// 代码
        break;
    default:
        // 默认情况
        break;
}

注意事项:

  • switch实现的功能和多重if一样,但是switch只能处理等值判断情况。(无法实现范围判断)
  • switch中break语句必须添加,否则会出现case穿透性。
  • switch中的表达式,只允许出现 整数int(byte short char(特殊))、字符串String、枚举类型Enum。
  • switch中的case后接的是常量(例如:1 2 3 “1” “2” "3 "… “星期一” “星期二”… 固定值<死值>)。
  • switch中建议添加default语句!

switch严格来讲性能比多重if要好一些。

switch(dayOfWeek) {
    case "星期一": // dayOfWeek.equals("星期一")
    case "星期二":
    case "星期三":
    case "星期四":
    case "星期五":
        System.out.println("好好学习!");
        break;
    case "星期六":
    case "星期日":
        System.out.println("好好休息!");
        break;
    default:
        System.out.println("非法星期输入!");
        break;
}

你可能感兴趣的:(选择结构)