2021-11-15----韩顺平Java入门第九天

韩顺平Java入门第九天–程序控制机构

1.程序流程控制介绍
    在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句。
    1) 顺序控制
    2) 分支控制
    3) 循环控制
2.顺序控制
在这里插入图片描述
3.分支控制
    if-else 介绍 让程序有选择的的执行,分支控制有三种 :单分支 if 、 双分支 if-else、 多分支 if-else if -…-else。
    1)单分支
在这里插入图片描述

//if 的快速入门 
import java.util.Scanner;//导入 
public class If01 { 
	//编写一个 main 方法 
	public static void main(String[] args) { 
		//编写一个程序,可以输入人的年龄,如果该同志的年龄大于 18 岁, 
		//则输出 "你年龄大于 18,要对自己的行为负责,送入监狱" 
		//
		//思路分析 
		//1. 接收输入的年龄, 应该定义一个 Scanner 对象 
		//2. 把年龄保存到一个变量 int age
		//3. 使用 if 判断,输出对应信息 
		//应该定义一个 Scanner 对象
		Scanner myScanner = new Scanner(System.in); 
		System.out.println("请输入年龄"); //(提示一句话)把年龄保存到一个变量 int age 
		int age = myScanner.nextInt(); 
		//使用 if 判断,输出对应信息 
		if(age > 18) { 
			System.out.println("你年龄大于 18,要对自己的行为负责,送入监狱"); 
		}
		System.out.println("程序继续..."); 
	} 
}

执行结果:

D:\JAVACode\05>javac If01.java

D:\JAVACode\05>java If01
请输入年龄
18
程序继续...

D:\JAVACode\05>java If01
请输入年龄
12
程序继续...

在这里插入图片描述
    2)双分支
在这里插入图片描述

//if-else 的快速入门 
import java.util.Scanner;//导入 
public class If02 { 
	//编写一个 main 方法 
	public static void main(String[] args) { 
		//编写一个程序,可以输入人的年龄,如果该同志的年龄大于 18 岁, 
		//则输出 "你年龄大于 18,要对 //自己的行为负责, 送入监狱"。否则 ,输出"你的年龄不大这次放过你了." 
		//
		//思路分析 
		//1. 接收输入的年龄, 应该定义一个 Scanner 对象 
		//2. 把年龄保存到一个变量 int age 
		//3. 使用 if-else 判断,输出对应信息
		//应该定义一个 Scanner 对象 
		Scanner myScanner = new Scanner(System.in); 
		System.out.println("请输入年龄"); //把年龄保存到一个变量 int age 
		int age = myScanner.nextInt(); 
		//使用 if-else 判断,输出对应信息 
		if(age > 18) { 
			System.out.println("你年龄大于 18,要对自己的行为负责,送入监狱"); 
		} else {
			//双分支 
			System.out.println("你的年龄不大这次放过你了"); 
		}
		System.out.println("程序继续..."); 
	} 
}

执行结果:

D:\JAVACode\05>javac If02.java

D:\JAVACode\05>java If02
请输入年龄
19
你年龄大于 18,要对自己的行为负责,送入监狱
程序继续...

D:\JAVACode\05>java If02
请输入年龄
11
你的年龄不大这次放过你了
程序继续...

在这里插入图片描述
单分支和双分支练习题:

//单分支和双分支练习题
public class IfExercise01{
	public static void main(String[] args){
		int x = 7;
		int y = 4;
		if(x > 5){
			if(y > 5){
				System.out.println(x + y);
			}
			System.out.println("韩顺平教育~");//输出结果韩顺平教育~
		}else{
			System.out.println("x is" + x);
		}

	}
}
//编写程序,声明 2 个 double 型变量并赋值。判断第一个数大于 10.0,且第 2 个数小于 20.0,打印两数之和。

public class IfExercise02 {
	public static void main(String[] args){
		double d1 = 34.5;
		double d2 = 12.5;
		if (d1 > 10.0 && d2 <20.0) {
			System.out.println(d1 + d2);
		}
	}
}
//【课后自己练】定义两个变量 int,判断二者的和,是否能被 3 又能被 5 整除,打印提示信息
public class IfExercise03{
	public static void main(String[] args){
		int a = 10;
		int b = 5;
		int sum = a + b;
		if((sum % 3 == 0) && (sum % 5 == 0)){
			System.out.println("a 和 b 的和,能被 3 又能被 5 整除");
		}else{
			System.out.println("a 和 b 的和,不能被 3 和 5 整除");
		}
	}
}
//判断一个年份是否是闰年,闰年的条件是符合下面二者之一: 
//(1)年份能被 4 整除,但不能被 100 整除;(2)能被 400 整除
//
//思路分析 
//1. 定义 int year 保存年 
//2. 年份能被 4 整除,但不能被 100 整除, 
// => year % 4 == 0 && year % 100 != 0 
//3. 能被 400 整除 => year % 400 == 0 
//4. 上面的 2 和 3 是 或的关系 //代码实现
public class IfExercise04{
	public static void main(String[] args){
		int year = 2000;
		if((year % 4 == 0 && year % 100 != 0)||(year % 400 == 0 )){
			System.out.println(year + "年是闰年");
		}else{
			System.out.println(year + "年不是闰年");
		}
		
	}
}

    3)多分支
在这里插入图片描述
多分支流程图
在这里插入图片描述
案例演示 1 请大家看个案例[If03.java]: 输入保国同志的芝麻信用分:
如果:1) 信用分为 100 分时,输出 信用极好;
    2) 信用分为(80,99]时,输出 信用优秀;
    3) 信用分为[60,80]时,输出 信用一般;
    4) 其它情况 ,输出 信用 不及格
    5) 请从键盘输入保国的芝麻信用分,并加以判断。

//课堂练习 
import java.util.Scanner; 
public class If03 { 
	//编写一个 main 方法 
	public static void main(String[] args) { 
		/*输入保国同志的芝麻信用分: 
		如果: 信用分为 100 分时,输出 信用极好; 
		信用分为(80,99]时,输出 信用优秀; 
		信用分为[60,80]时,输出 信用一般; 
		其它情况 ,输出 信用 不及格 请从键盘输入保国的芝麻信用分,并加以判断 假定信用分数为 int */ 
		Scanner myScanner = new Scanner(System.in); //接收用户输入 
		System.out.println("请输入信用分(1-100):"); //请思考:如果小伙伴输入的不是整数,而是 hello.. 
		//==>这里我们后面可以使用异常处理机制搞定-》老师点一下
	    int grade = myScanner.nextInt(); 
	    //先对输入的信用分,进行一个范围的有效判断 1-100, 否则提示输入错误 
	    if(grade >=1 && grade <= 100) { 
	    	//因为有 4 种情况,所以使用多分支 
	    	if(grade == 100) { 
	    		System.out.println("信用极好"); 
	    	} else if (grade > 80 && grade <= 99) { 
	    	//信用分为(80,99]时,输出 信用优秀; 
	    		System.out.println("信用优秀"); 
	    	} else if (grade >= 60 && grade <= 80) {
	    	//信用分为[60,80]时,输出 信用一般 
	    		System.out.println("信用一般"); 
	    	} else {
	    		//其它情况 ,输出 信用 不及格 
	    		System.out.println("信用不及格"); 
	    	} 
	    } else { 
	    	System.out.println("信用分需要在 1-100,请重新输入:)"); 
	    } 
	} 
}

    4)嵌套分支
    基本介绍: 在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支的结构称为内层分支外面的分支结构称为外层分支。老师建议: 不要超过 3 层 (可读性不好)。
在这里插入图片描述
应用案例 :
    参加歌手比赛,如果初赛成绩大于 8.0 进入决赛,否则提示淘汰。并且根据性别提示进入男子组或女子组。 输入成绩和性别,进行判断和输出信息。

import java.util.Scanner;
public class NestedIf { 
	//编写一个 main 方法 
	public static void main(String[] args) { 
		/*参加歌手比赛,如果初赛成绩大于 8.0 进入决赛, 
		否则提示淘汰。并且根据性别提示进入男子组或女子组。 
		【可以让学员先练习下】, 输入成绩和性别,进行判断和输出信息。 
		[NestedIf.java] 
		提示: double score; char gender; 
		接收字符: char gender = scanner.next().charAt(0) 
		*/ 
		//思路分析 
		//1. 创建 Scanner 对象,接收用户输入 
		//2. 接收 成绩保存到 double score 
		//3. 使用 if-else 判断 如果初赛成绩大于 8.0 进入决赛,否则提示淘汰 
		//4. 如果进入到 决赛,再接收 char gender, 使用 if-else 输出信息 
		//代码实现 => 思路 --> java 代码 
		Scanner myScanner = new Scanner(System.in); 
		System.out.println("请输入该歌手的成绩"); 
		double score = myScanner.nextDouble(); 
		if( score > 8.0 ) { System.out.println("请输入性别");
			char gender = myScanner.next().charAt(0); //把字符串转成char
			if( gender == '男' ) { 
				System.out.println("进入男子组"); 
			} else if(gender == '女') { 
				System.out.println("进入女子组"); 
			} else { 
				System.out.println("你的性别有误,不能参加决赛~"); 
			} 
		} else { System.out.println("sorry ,你被淘汰了~"); 
			} 
	} 
}

课后作业:

import java.util.Scanner;
public class TicketingSystem { 
	//编写一个 main 方法 
	public static void main(String[] args) { 
		/*4-10旺季:
				成人(18-60):60
				儿童(<18):半价
				老人(>60):1/3
		  淡季:
		  		成人:40
		  		其他:20 
		*/ 
		//思路分析 
		//1. 创建 Scanner 对象,接收用户输入 
		//2. 接收 月份保存到 int month 
		//3. 使用 if-else 判断 如果是否为旺季,
		//4. 如果进入到旺季,再接收 年龄age, 使用 if-else 输出信息 
		//代码实现 => 思路 --> java 代码
		// 
		Scanner myScanner = new Scanner(System.in); 
		System.out.println("请输入月份"); 
		int month = myScanner.nextInt();
		System.out.println("请输入年龄");
		int age = myScanner.nextInt(); 
		if( month <= 10 && month >= 4 ) { 
			if( age <  18 ) { 
				System.out.println("儿童票" + 60/2 + "元"); 
			} else if(age >= 18 && age <= 60) { 
				System.out.println("成人票"  + 60 + "元"); 
			} else if(age > 60){ 
				 System.out.println("老人票"  + 60/3 + "元"); 
			} else{
				System.out.println("你输入的年龄有误");
			}
		} else { 
			if (age >= 18 && age <= 60) {
				System.out.println("成人票"  + 40 + "元");
			}else{
				System.out.println("其他" + 20 + "元"); 
			}
			
		} 
	} 
}

------文章为自学笔记,学习的课程是B站上的韩顺平30天学JAVA,文章标题的天数是自己学习的天数-----

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值