java:5-1顺序控制

本文详细介绍了Java中的顺序控制、分支控制(包括单分支if、双分支if-else、多分支if-elseif-else和嵌套分支),并通过实例演示如何使用if-else进行年龄判断、信用评级、门票价格计算以及闰年判断。
摘要由CSDN通过智能技术生成


【老韩b站视频笔记p103-p113】

1. 程序流程控制介绍

程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句。

  • 顺序控制
  • 分支控制
  • 循环控制

2. 顺序控制

2.1 定义

  • 程序从上到下逐行执行,中间没有任何判断和跳转。
  • java中定义变量时采用合法的前向引用。(先定义,再引用)
    请添加图片描述

3. 分支控制if-else

3.1 介绍

让程序有选择的的执行,分支控制有三种

  1. 单分支 if
  2. 双分支 if-else
  3. 多分支 if-else if -…-else

3.2 单分支if

  1. 语法:
    请添加图片描述
  2. 说明:
    如果条件为TRUE,就会执行{}里的代码。为FALSE则不执行。
    【特别说明:如果{}里只有一条语句,则可不写{},但建议写上{}】
  3. 流程图

在这里插入图片描述

  1. 案例
    编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18,要对自己的行为负责,送入监狱"
public class var01 {

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

3.3 双分支if-else

  1. 语法:
    请添加图片描述
  2. 说明
    当条件表达式成立,即执行代码块?,否则执行代码块2。
    【如果执行代码块有一条语句,则{}可以省路,否则,不能省略】
  3. 流程图

请添加图片描述

  1. 案例
    编写一个程序,可以输入人的年龄如果该同志的年龄大于18岁,则输出"你年龄大于18,要对自己的行为负责,送入监狱’。否则,输出"你的年龄不大这次放过你了"。
public class var01 {

	//编写一个main方法
	public static void main(String[] args) {
		//思路分析
		//1. 接收输入年龄,定义一个Scanner对象
		//2. 把年龄保存到一个int age变量
		//3. 使用if-else判断,输出对应信息。
		import java.util.Scanner;
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入年龄");
		int age = myScanner.nextInt();
		if(age > 18) {
			System.out.println("你年龄大于18,要对自己的行为负责,送入监狱")
		} else {
			System.out.println("你的年龄不大这次放过你了")
		}
		System.out.println("程序继续执行...")
	}
} 
  1. 单/双分支练习题:
    (1.)
    请添加图片描述
    (输出:韩顺平教育~)
    (2.) 编写程序,声明2个double型变量并赋值。判断第一个数大于10.0,且第2个数小于20.0,打印两数之和。
public class var01 {

	//编写一个main方法
	public static void main(String[] args) {
		//思路分析:用单分支
		double d1 = 34.5;
		double d2 = 2.6;
		if(d1 > 10.0 && d2 < 20.0) {
			System.out.println("两数和=" + (d1 + d2));
		}
	}
} 

.
(3.) 课后自己练】定义两个变量int,判断二者的和,是否能被3又能被5整除,打印提示信息

public class var01 {

	//编写一个main方法
	public static void main(String[] args) {
		//思路分析:
		//1. 定义num1。num2
		//2. 定义sum = num1 + num2
		//3. 判断sum%3,5是否=0
		//4. 使用ifelse提示对应信息
		int num1 = 10;
		int num2 = 5;
		int sum = num1 + num2;
		if(sum % 3 == 0 && sum % 5 == 0) {
			System.out.println("可以被3又能被5整除");
		} else {
			System.out.println("和不能同时被3和5整除");
		}
		}
	}
} 

.
(4.)判断一个年份是否是闰年,闰年的条件是符合下面二者之一:(1)年份能被4整除,但不能被100整除;(2)能被400整除

public class var01 {

	//编写一个main方法
	public static void main(String[] args) {
		//思路分析:
		//1. 定义年份int year
		//2. (year%4==0 && year%100!=0) || year%400==0
		int year = 2023;
		if((year % 4 == 0 && year % 100 != 0) || year % 400 ==0) {
			System.out,println(year + "是闰年");
		} else 	{
			System.out.println(year + "不是闰年");
		}
	}
} 

3.4 多分支 if-else if -…-else

  1. 语法:

请添加图片描述

  1. 特别说明:
    (1)多分支可以没有 else,,当所有的if 都不成立,则一个执行入口都没有。
    (2)如果有else,如果所有的条件表达式都不成立,则默认执行else代码块。
  2. 流程图

请添加图片描述

  1. 案例

<1>输入保国同志的芝麻信用分: 如果:

  1. 信用分为100分时,输出信用极好;
  2. 信用分为(80,99]时,输出信用优秀;
  3. 信用分为[60,80]时,输出信用一般;
  4. 其它情况,输出信用不及格;
  5. 请从键盘输入保国的芝麻信用分,并加以判断;
public class RelationalOperator {
	//编写一个 main 方法
	public static void main(String[] args) {
		//
		import java.util.Scanner;
		Scanner myScanner = new Scanner(System.in);
		//接收用户输入
		System.out.println("请输入信用分");
		int grade = myScanner.nextInt();
		//4种条件用多分支
		if(grade >= 1 && grade <= 100) {
			if(grade == 100) {
				System.out.println("信用极好");
			} else if(grade > 80) {
				System.out.println("信用优秀");
			} else if(grade >= 60) {
				System.out.println("信用一般");
			} else {
				System.out.println("信用不及格");
		} else {
			System.out.println("信用分需要在 1-100,请重新输入:)")
		}
	} 
}

<2>

请添加图片描述
【b】
请添加图片描述
【b=T, 改成b=F,那么if的条件就是false, a不会输出。!b = True,输出c】

3.5 嵌套分支

  1. 介绍:

在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支的结构称为内层分支外面的分支结构称为外层分支不要超过 3 层 (可读性不好)

  1. 语法:

请添加图片描述

  1. 案例:
    参加歌手比赛,如果初赛成绩大于 8.0 进入决赛,否则提示淘汰。并且根据性别提示进入男子组或女子组。【可以 让学员先练习下】, 输入成绩和性别,进行判断和输出信息。
public class RelationalOperator {
	//编写一个 main 方法
	public static void main(String[] args) {
		//思路分析
		//1. 
		import java.util.Scanner;
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入成绩");
		double score = myScanner.nextDouble();
		if(grade > 8.0) {
			System.out.println("请输入性别");
			char gender = myScanner.next().charAt(0);
			if(gender == 'm'){
				System.out.println("男子组决赛");
			} else if(gender == 'f'){
				System.out.println("女子组决赛");
			} else {
				System.out.println("性别输入错误")
			}
		} else {
			System.out.println("不好意思你没进入决赛");
		}
	} 
}

【将string转换为char的方法就是提取string的第一个字符.charAt(0): string.charAt(0)】
4. 练习
请添加图片描述

public class RelationalOperator {
	//编写一个 main 方法
	public static void main(String[] args) {
		//思路分析
		import java.util.Scanner;
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入月份数字");
		int month = myScanner.nextInt();
		if(age > 0 && (month >= 1 && month <= 12)) {
			if(month >= 4 && month <= 10) {
				System.out.println("请输入年龄");
				int age = myScanner.nextInt();
				if(age >= 18 && age <= 60){
					System.out.println("票价60");
				} else if(age < 18){
					System.out.println("票价30");
				} else {
					System.out.println("票价20");
				}
			} else {
				System.out.println("请输入年龄");
				int age = myScanner.nextInt();
				if(age >= 18 && age <= 60) {
					System.out.println("票价40");
				} else {
					System.out.println("票价20");
			}
		} else {
			System.out.println("输入有误");
		}
	} 
}
  • 18
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值