Day 4 分支结构

Day 4 分支结构
4.1 代码运行过程中常见的结构
1. 顺序结构:代码从左到右,自上而下的基本运行原则
2. 分支结构:代码满足不同的条件,执行不同的结果
3. 循环结构:代码存在多次执行的情况
4.2 分支结构
4.2.1 if 分支结构
1. 语法结构:
	if (/* 条件判断 */) {
		// 语句体
	}
2. 执行流程:
    当代码运行到if结构时,首先执行条件判断,条件判断的结果是一个boolean数据类型,条件判断为true时,执行语句体;为false时,此if结构执行结束
    最终跳到该if结构大括号外的语句中去
3. 限制:
    if分支结构只能处理满足条件的情况,当条件不满足时,没有相应的处理语句
    
/* 判断一个字符是不是大写英文字母 */
class Demo3 {
    public static void main(String[] args) {
        // 因为判断的时字符,所以我们定义的是char类型变量
	char ch = 'A';
	// 条件判断语句的结果是一个boolean数据类型,结果为 true or false
	if (ch >= 'A' && ch <= 'Z') {
                // 结果为true,执行大括号内的代码
		System.out.println("这是一个大写英文字母");
		System.out.println("字母为 :" + ch);
	}
        // 结果为false,跳出if结构,执行该if结构大括号外的语句
	System.out.println("大括号之外的语句");  
    }
}


/*判断一个字符是不是英文字母*/
class Demo4 { 
    public static void main(String[] args) {
	char ch = 'a';
	
	if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')) {
		System.out.println("这是一个英文字母");
	}
	System.out.println("if大括号之外的代码");
    }
}

/* 判断一个年份是不是闰年 */
class Practise1 {
    public static void main(String[] args) {
	// 年份是一个整型的数据,所以定义一个int变量
	int year = 2000;
		
	if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
		System.out.println(year + "年是闰年");
	} 
		System.out.println("if大括号之外的代码");
    }
}
4.2.2 if else 分支结构
1. 语法结构:
    if (/* 条件判断 */) {
        // true语句体
    } else {
        // false语句体
    }
2. 执行流程:
    代码执行到if else分支结构时,首先执行if之后的条件判断,条件判断的结果是一个boolean数据类型,条件判断为true时,执行true语句体;为false时,执行false语句体
    程序员的孤独:世界上最遥远的距离是我在if里,你在else/* 判断工资是否需要纳税 */
class Demo5 {
    public static void main(String[] args) {
	// 工资是浮点类型数据,定义使用double类型
	double salary = 10000.0;
	/*
	语句体:
	大括号以内的内容,也可以称之为代码块
	*/
	if (salary > 5000) {
		System.out.println("我为祖国做贡献");
	} else {
		System.out.println("同志尚需努力");
	}
    }
}

/*
判断你是否有女朋友
	有 true
	没有 false
	此条件只有两种状态,定义时可以用boolean类型
*/
class Demo6 {
    public static void main(String[] args) {
		
	boolean haveGrilFriend = true;
	/*
	if ()小括号内需要数据类型为boolean类型
	haveGrilFriend是一个boolean类型,可以直接
	用于if条件的判断
	*/
	if (haveGrilFriend) {
	    System.out.println("奶茶买一送一");
	} else {
	    System.out.println("路见不平一声吼,你还没有女朋友");
	}
    }
}
4.2.3 if else if 分支结构
1. 语法结构:
    if (/* 条件判断1 */) {
        // 处理方式1
    } else if (/* 条件判断2 */) {
        // 处理方式2
    } else if (/* 条件判断3 */) {
        // 处理方式3
    } else {
        // 最终处理方式
    }
2. 执行流程:
    代码运行到if else if分支结构时,从上至下,匹配if之后小括号里的内容,条件匹配成功,执行对应的处理方式,并结束此分支结构,如果所有的条件判断都不满足,则执行else语句,并结束此分支结构
3. 注意:
    else if没有个数限制,可以有多个
        
        
/*
会员等级的判断
	100~1000    铜牌会员
	1001~5000   银牌会员
	5001~10000  金牌会员
	10001~50000 钻石会员
	50001以上   黑钻会员
*/
class Demo9 {
    public static void main(String[] args) {
	int money = 60;
		
	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("非会员");
	}
    }
}
4.2.4 补充知识点【Scanner】
1. Scanner用法:现阶段粘贴复制就行
    	  作用:给程序提供一种方式,用于接收用户输入的数据
    	  使用流程:Scanner是Java中提供的用于从控制台输入数据到代码中的一种方式
2. 点技能点:Java中没有直接使用Scanner的能力,官方操作【导包】
    	固定格式: import java.util.Scanner;
				 放在class代码的上一行
3. 需要一个所谓Scanner的“变量”
   固定格式: Scanner sc = new Scanner(System.in);
4. 选择执行对应数据类型的对应方法
    获取 int 类型的变量: sc.nextInt();
    获取 float 类型的变量: sc.nextFloat();
	获取 double 类型的变量: sc.nextDouble();
	获取 char 类型的变量: sc.nextLine().charAt(0);
5. 【友好性提示】
    我们写代码的时候要站在用户的角度来思考问题。用户在进行操作时,需要给与用户足够的提示和引导,告诉用户当前操作应该如何完成,即考虑代码的友好性!
    用户粘性问题!!用户提示!!用户友好性!!
6.【用户输入数据合法性判断】
    当用户输入数据后,需要对其的数据进行合法性的判断,因为即使有提示用户输入的数据范围,但是也存在用户输入不合法数据的情况。
    

/* 一个学生成绩的等级划分 */
// 导包,让当前Java代码可以使用Scanner
import java.util.Scanner;
class Demo8 {
    public static void main(String[] args) {
	/*
	考虑到0.5的情况,我们使用float数据类型
	并赋予一个初始值
	*/
	float Score = 0.0F;
	// 需要得到一个Scanner的变量
	Scanner sc = new Scanner(System.in);
        // 提示用户操作
	System.out.println("请输入学生的成绩(1~100) :");
        // 手动输入学生成绩
	Score = sc.nextFloat();
		
	/* 
	验证用户输入数据的合法性,如果不合法,终止程序!
	不合法判断:输入数据  > 100  或者 < 0
	*/
	if (Score > 100 || Score < 0) {
	    System.out.println("输入数据不合法!");
            // 程序退出
	    System.exit(0);
	}
	/* 成绩等级判断 */
	if (Score >= 90) {
	    System.out.println(Score + "分" + " 优秀");
	} else if (Score >= 80) {
	    System.out.println(Score + "分" + " 优良");
	} else if (Score >= 70) {
	    System.out.println(Score + "分" + " 中等");
	} else if (Score >= 60) {
	    System.out.println(Score + "分" + " 及格");
	} else if (Score >= 0) {
	    System.out.println(Score + "分" + " 不及格");
	}
    }
}
4.3 总结
分支结构用于处理代码中出现的一些需要条件判断,并且按条件对应处理的情况
	1. 数据类型选择
	2. 条件约束考虑清楚
	3. 处理的过程考虑清楚
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值