Day4 学习分享 - 分支结构

本文深入讲解Java中的顺序、分支和循环结构,重点介绍if、if-else和if-elseif分支结构的应用实例,包括条件判断、用户输入处理及编程规范建议。
1. 常见结构

顺序结构:

​ 代码从上至下,从左至右阅读 - 最基本原则

分支结构:

​ 代码满足不同的条件, 从而执行不同的结果

循环结构:

​ 代码中如果有需要多次执行的情况, 就会用到循环结构

2. 分支结构
2.1 if分支结构

if分支结构格式:

if (/* 条件判断 */) {
    // 语句体
}
/*
例子
*/
class Demo1 {
	public static void main (String[] args){
		// 假设你有1元钱
		int money = 1;
		
		// money >=5 是一个条件判断, 结果是一个boolean类型
		if (money >= 5) {
			System.out.println("煎饼果子来一套");
			// 可以不要的语句
            money -= 5;
		}
		// if大括号外代码
		System.out.println("钱不够买煎饼果子");
	}
}

/*
判断是否闰年
*/
class Demo2 {
	public static void main (String[] args){
		
		//年份是一个整数, 使用int类型
		int year = 2009;
		
        //闰年的条件为能被4整除但不能被100整除, 或 能被400整除
		if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0 ) {
			System.out.println("这是闰年");
		}
		
		System.out.println("if 语句之外的语句");
	}
}
2.2 if else 分支

if else 分支结构格式:

if (/* 条件判断 */) {
    // true语句体
} else {
    // false语句体
}
/*
例子:
	月收入5000以上缴税
	月收入5000以下不需要缴税
*/
class Demo3 {
	public static void main(String[] args){
		
		// 工资是一个浮点类型数据, 这里使用double
		double salary = 4999.0;
		
		/* 
		语句体/代码块:
			大括号以内的内容
		*/
		if (salary > 5000) {
			System.out.println("我为国家做贡献");
		} else {
			System.out.println("我会继续努力,争取为国家做贡献");
		}
	}
}
2.3 if else if 分支结构

if else if 分支结构格式:

if (/* 条件匹配1 */) {
    // 语句体
} else if (/* 条件匹配2 */) {
    // 语句体
} else if (/* 条件匹配3 */) {
    // 语句体
} else if (/* 条件匹配4 */) {
    // 语句体
} else {
    // 无匹配项最终处理方式
}
/* 
【注意】
	else if 的个数并不限制, 可以有多个, 但是编程规范要求最多一个语句体里不超过80行代码
*/
/*
例子:
	消费:
        100 ~ 1000     铜牌会员
        1001 ~ 5000    银牌会员
        5001 ~ 10000   金牌会员
        10001 ~ 50000  钻石会员
        50001 以上     黑钻会员
*/
class Demo8 {
	public static void main (String[] args) {
		
		// 用户消费数据按照int类型考虑
		int money = 20;
		
		if (money >= 100 && money <= 1000) {
			System.out.println("铜牌会员");
		} else if (money > 1000 && money <= 5000) {
			System.out.println("银牌会员");
		} else if (money > 5000 && money <= 10000) {
			System.out.println("金牌会员");
		} else if (money > 10000 && money <= 50000) {
			System.out.println("钻石会员");
		} else if (money > 50000) {
			System.out.println("黑钻会员");
		} else {
			System.out.println("不是会员");
		}
	}
}
3. 知识点补充 - Scanner
	疑问:
		以上程序都需要用户修改代码才可得出结论, 这对于普通用户来说操作可行性有多大? - 不现实
	解决方法:
		我们需要提供一种方式来接收用户输入的数据.
		
	[Scanner是Java中提供的用于从控制台输入数据到代码中的一种方式, 存在一些弊端, 也容易导致一些错误, 所以只了解一些必要的方法.]
	
	Scanner使用流程:
		1. 【导包】
			固定格式:
				import java.util.Scanner;
				放在class代码上一行
				
		2. 得到一个Scanner的变量
			固定格式:
				Scanner sc = new Scanner (System.in);
		
		3. 选择执行对应的方法从键盘上获取对应的数据
			获取int类型 
				int类型的变量 = sc.nextInt();
			获取float类型
				float类型的变量 = sc.nextFloat();
			获取double类型
				double类型的变量 = sc.nextDouble();
			获取cahr类型
				char类型的变量 = sc.nextLine().charAt;
/*
例子
*/
import java.util.Scanner;
class Demo10 {
	public static void main (String[] args) {
		float score;
		
		System.out.println("请输入学生的成绩:");
		// 需要得到一个Scanner的变量
		Scanner sc = new Scanner (System.in);
		score = sc.nextFloat();
		
		/* 
		验证用户输入数据的合法性
		如果用户输入的数据不合法, 终止程序!!!
		不合法:
			输入数据 > 100 或者 < 0.
		*/
		if (score > 100 || score < 0) {
			System.out.println("输入数据不合法!!!");
			// 程序退出
			System.exit(0);
		}
		
		if (score >= 90 && score <= 100) {
			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("让你爹穿着拖鞋来学校一趟");
		}
	}
}

知识点补充:

​ 作为一个程序员, 必须时刻注意【用户粘性问题】, 【用户提示】 以及 【用户友好性】. 需要给予用户足够的提示和引导, 同时也要考虑自身代码的友好性和可读性.

4. 总结

​ 分支结构是用于处理代码中出现的一些需要判断的场景, 并且根据判断作出相应的处理.

​ 我们需要注意以下几点:

​ 1. 条件约束考虑清楚.

​ 2. 处理的过程考虑清楚

​ 3. 数据类型选择考虑清楚

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值