栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java流程控制(1)if-else、switch-case

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java流程控制(1)if-else、switch-case

目录

一、流程控制的三种结构

二、分支结构:if else

1.案例(1):使用if else 和 && 短路与逻辑运算符,打印三个数的中间值。

2.案例(2):使用Scanner类,输入3个数值,并按从大到小的顺序打印出来。

三、分支结构:switch case

1.案例(3):输入成绩,使用switch case 判断成绩是否及格

2.案例(4):利用switch case 不遇到break可以一直执行到结束的特性,打印输入的年月日是当年的第几天。


一、流程控制的三种结构

1.顺序结构

当执行完一条语句后,继续执行下一条语句,按顺序执行。

2.分支结构

按照给出的条件,判断是否执行内部语句。

3.循环结构

符合条件时,重复执行内部语句。

二、分支结构:if else

1.案例(1):使用if else 和 && 短路与逻辑运算符,打印三个数的中间值。
class  FlowControl{

	public static void main(String[] args) {

		//使用if else找出三个数的中间值 
		int num1 = 1111;
		int num2 = 618;
		int num3 = 1024;
		int max;

		if (num1 >= num2 && num1 <= num3){
			max = num1;		//当num1大于等于其他num值时,将num1赋值给max。
		}else if(num2 >=num1 && num2 <= num3){
			max = num2;		//当num2大于等于其他num值时,将num2赋值给max。
		}else{
			max = num3;		//以上都不成立时,将num3赋值给max。
		}

		System.out.println("三个数的中间值为:" + max);
	}
}

输出结果是num3的值1024

结论:使用&&短路一次完成num是否为中间值的条件判断,相比使用if else的嵌套,代码更为简洁。

2.案例(2):使用Scanner类,输入3个数值,并按从大到小的顺序打印出来。
import java.util.Scanner;	//导入Scanner类

class  FlowControl{

	public static void main(String[] args) {

		Scanner receiverNum = new Scanner(System.in);	//创建一个名为receiverNum的Scanner类的对象
		System.out.println("请输入三个数:");
		int num1 = receiverNum.nextInt();				//接收输入的第一个数
		int num2 = receiverNum.nextInt();				//接收输入的第一个数
		int num3 = receiverNum.nextInt();				//接收输入的第一个数
		if (num1 >= num2){
			if (num3 >= num1){							//使用if嵌套做二次分支
				System.out.println(num3 + "," + num1 + "," + num2);
			}else if(num3 <= num2){
				System.out.println(num1 + "," + num2 + "," + num3);
			}else{
				System.out.println(num1 + "," + num3 + "," + num2);
			}
		}else{
			if (num3 >= num2){
				System.out.println(num3 + "," + num2 + "," + num1);
			}else if (num3 <= num1){
				System.out.println(num2 + "," + num1 + "," + num3);
			}else{
				System.out.println(num2 + "," + num3 + "," + num1);
			}
		}
	}
}

输出结果:键盘输入了三个数,分别按从大到小的顺序输出了。

结论:在需要对多个数(3个及以上)做排序时,使用if嵌套可以简化条件判断语句,但是不建议多重嵌套使用,会大幅降低代码的可读性。

三、分支结构:switch case

1.案例(3):输入成绩,使用switch case 判断成绩是否及格
//使用switch case 判断成绩是否及格
		Scanner receiverNum = new Scanner(System.in);	//创建一个名为receiverNum的Scanner类的对象
		System.out.println("请输入成绩(0-100):");
		int score = receiverNum.nextInt();				//输入分数
		switch (score/10){
		case 0 :
		case 1 :
		case 2 :
		case 3 :
		case 4 :
		case 5 :
			System.out.print("不及格");				//匹配到case后会顺序执行后续case,直到break。
			break;
		case 6 :
		case 7 :
		case 8 :
		case 9 :
		case 10 :
			System.out.print("及格");
			break;
		}

输出结果:当输入成绩为55时,打印不及格,输入99时,打印及格。

结论:switch case只能用一个值来判断执行的下游分支流程,而不能是一个范围(布尔类型)匹配完成后,程序会继续往后执行,直至break语句或执行完全部内部语句。

2.案例(4):利用switch case 不遇到break可以一直执行到结束的特性,打印输入的年月日是当年的第几天。
//使用switch case 打印出输入的年月日是当年的第几天
		Scanner receiverNum = new Scanner(System.in);
		System.out.println("请输入年:");
		int year = receiverNum.nextInt();	//接收年份
		System.out.println("请输入月:");
		int month = receiverNum.nextInt();	//接收月份
		System.out.println("请输入日:");
		int day = receiverNum.nextInt();	//接收日期

		int sumDay =0;						//定义当年第几天数
		int febDay ;						//定义febDay代指二月的天数

		//判断是否为闰年并为febDay赋值相应天数
		if ((year % 4 == 0 && year % 100 != 0) || year % 400 ==0){
			febDay = 29;
		}else{
			febDay = 28;
		}

		switch (month){
		case 12:
			sumDay += 30;
		case 11:
			sumDay += 31;
		case 10:
			sumDay += 30;
		case 9:
			sumDay += 31;
		case 8:
			sumDay += 31;
		case 7:
			sumDay += 30;
		case 6:
			sumDay += 31;
		case 5:
			sumDay += 30;
		case 4:
			sumDay += 31;
		case 3:
			sumDay += febDay;
		case 2:
			sumDay += 31;
		case 1:
			sumDay += day;
			System.out.println(year + "年" + month + "月" + day + "日是当年的第" + sumDay + "天");
			break;
		default:
			System.out.println("输入月份有误");		//当输入月份不是1-12时打印这句话		
		}

输出结果:输入月份有误时能够正确提示,输入2004.3.1打印2004年3月1日是当年的第61天,输入2021.3.1打印2021年3月1日是当年的第60天。

结论:在使用switch case时,break是可选项。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1007370.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号