Java流程控制语句-分支结构(选择结构)

定义

条件语句可根据不同的条件执行不同的语句。包括if条件语句与switch多分支语句。

分类

if分支结构

第一种格式
格式

if(条件表达式){
执行的代码块;
}

执行流程

执行流程图

if语句格式1

执行流程说明

首先判断关系表达式看其结果是true还是false
如果是true就执行语句体
如果是false就不执行语句体

举例
public class IfDemo {
	public static void main(String[] args) {
		System.out.println("开始");
		// 定义两个变量
		int a = 10;
		int b = 20;

		if (a == b) {
			System.out.println("a等于b");
		}
	
		int c = 10;
		if (a == c) {
			System.out.println("a等于c");
		}
	
		System.out.println("结束");
	}
}
第二种格式
格式

if(条件表达式){
执行的代码块;
}else{
执行的代码块;
}

执行流程

执行流程图

if语句格式2

执行流程说明

首先判断关系表达式看其结果是true还是false
如果是true就执行语句体1
如果是false就执行语句体2

举例
public class IfDemo2 {
	public static void main(String[] args) {
		System.out.println("开始");
		// 判断给定的数据是奇数还是偶数
		// 定义变量
	int a = 100;
		// 给a重新赋值
	a = 99;

	if (a % 2 == 0) {
		System.out.println("a是偶数");
	} else {
		System.out.println("a是奇数");
	}
	
		System.out.println("结束");
	}
}
第三种格式
格式

if(条件表达式){
执行的代码块;
}else if(条件表达式){
执行的代码块;
}…(此处省略N个else if)
else{
执行代码块;
}

执行流程

执行流程图

if语句格式3

执行流程说明

首先判断关系表达式1看其结果是true还是false
如果是true就执行语句体1
如果是false就继续判断关系表达式2看其结果是true还是false
如果是true就执行语句体2
如果是false就继续判断关系表达式…看其结果是true还是false

如果没有任何关系表达式为true,就执行语句体n+1

举例
public class IfDemo3 {
	public static void main(String[] args) {
		// x和y的关系满足如下:
		// x>=3 y = 2x + 1;
		// -1<=x<3 y = 2x;
		// x<=-1 y = 2x – 1;
		// 根据给定的x的值,计算出y的值并输出。

		// 定义变量
		int x = 5;
		
		/*
		int y;
		if (x >= 3) {
			y = 2 * x + 1;
		} else if (x >= -1 && x < 3) {
			y = 2 * x;
		} else if (x <= -1) {
			y = 2 * x - 1;
		}else {
			y = 0;
		}
		*/
		
		int y = 0;
		if (x >= 3) {
			y = 2 * x + 1;
		} else if (x >= -1 && x < 3) {
			y = 2 * x;
		} else if (x <= -1) {
			y = 2 * x - 1;
		}
		
		System.out.println("y的值是:"+y);
	}
}
注意事项

1、一旦满足某个条件表达式,则进入其执行语句块执行,执行完毕后不会执行其一下的条件语句。
2、如果多个条件表达式之间为“互斥”关系,多个语句之间可以上下调换顺序,一旦是包含关系,要求条件表达式范围小的写到范围大的上边;

switch分支结构

执行流程

执行流程说明

首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

执行流程图

switch执行流程

举例
public class SwitchDemo {
	public static void main(String[] args) {
		//创建键盘录入对象
		Scanner sc = new Scanner(System.in);
		
		//接收数据
		System.out.println("请输入一个数字(1-7):");
		int weekday = sc.nextInt();
		
		//switch语句实现选择
		switch(weekday) {
		case 1:
			System.out.println("星期一");
			break;
		case 2:
			System.out.println("星期二");
			break;
		case 3:
			System.out.println("星期三");
			break;
		case 4:
			System.out.println("星期四");
			break;
		case 5:
			System.out.println("星期五");
			break;
		case 6:
			System.out.println("星期六");
			break;
		case 7:
			System.out.println("星期日");
			break;
		default:
			System.out.println("你输入的数字有误");
			break;
		}
	}
}
注意事项

1、swich(表达式)中表达式的返回值必须是以下几种类型之一:
  byte,short,char,int,枚举(jdk1.5),String(jdk1.7)

2、case子句中的值必须是常量,且所有case子句中的值应是不同的;

3、default子句是可任选的,当没有匹配的case时,执行default;

4、break语句用来在执行完一个case分支后使程序跳出swich语句块;如果没有break程序会顺序执行到swich结尾;

if分支结构和switch分支结构区别

if和swich语句很想,如果判断的具体数值不多,而且复合byte、short、int、char这四种类型。建议使用swich语句,因为效率稍高;

其他情况:对区间进行判断,对结果为boolean类型进行判断,使用if,if的使用范围比较广泛。

  • 111
    点赞
  • 119
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第1页。计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第1页。课堂教学计划表 计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第1页。 计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第1页。 课程名称 Java程序设计 教师姓名 专业班级 授课时间 授课地点 学时数 8 授课题目 §2Java语言开发基础 教学目标及要求 知识目标 掌握Java语言的基本组成; :・掌握数据类型、变量、运算符及表达式; :・掌握三种控制结构; 技能目标 :・培养学生规范编码和良好的程序设计风格; :・能够应用Java语言进行程序设计; 数据类型、运算符、字符串、数组等知识在编程过程能熟练、准确应用; ・:・能熟练、准确地应用分支、循环、跳转三种流程执行过程; 教学重点 :・标识符命名规那么、数据类型与运算符; : 嵌套ifelse语句的用法; 教学难点 :・数值类型转换(强制转换、隐式转换)的用法; :・Switch语句的用法; 工程描述 :・工程1:猜数字游戏 教学方法 问题导引法:通过给学生提出实际编程出现的问题来引入教学内容,使学生在主动分析、讨论和解决问题的过程掌握所学知识; :・案例分析法:通过演示典型案例来讲解相关知识和技术的具体使用过程,使学生在具体的应用环境加深对概念的理解; :・任务驱动法:通过完成工程的各个任务逐步增强实版技能; 教学过程设计 一、新课导入与工程展示 :・首先通过提问、讨论等互动的形式引入课程新知识; : 然后通过演示本章工程来激发学生的学习兴趣,增强学生学习的积极性、主动性; 计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第2页。计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第2页。教案正文 计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第2页。 计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第2页。 二、工程任务分解 ・:・带着学生分析本章工程并对工程进行任务分解,各工程分解任务如下: 工程1:猜数字游戏 ,任务1:确定变量 /任务2:选择数据类型 /任务3:确定表达式 /任务4:循环猜数,并统计次数 三、任务分析 :・根据工程及任务的描述和要求,对工程的各个任务进行分析,然后总结出完成该任务所需要的知识、技能和主要操作步骤; 四、相关知识点 :・针对各个任务分析阶段得到的知识和技能,并结合本章知识和技能目标对相关知识点进行详细讲解和说明; 五、任务实施 :・该阶段以完成各个任务为目的,教师利用相关知识和技能以演示的方式为学生详细讲解每个任务的完整实现过程; :・同时,该阶段要求学生进行跟随练习,以加深对知识和技能的理解和掌握; 六、技能拓展 :・在保证学生掌握了各个任务所涉及的基本知识和技能的基础上,再通过介绍一定的附加知识并辅导学生完成指定的"技能拓展任务",最终使学生对所学知识到达举一反三,融会贯通的学习目的; 七、指导与评价 对学生的任务实施过程进行指导,并对其出现的问题进行总结,给出评价; 课后作业 :・完成课后相关习题; 课后分析 :・主要问题: 面向对象思、想的培养; 一、新课导入与工程展示思考:回顾C语言学过的基本语法知识? 计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第3页。计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第3页。运行各个源程序,为学生演示本章工程各个任务的实现效果。 计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第3页。 计算机程序设计(Java)-教案--单元二--Java语言开发基础全文共8页,当前为第3页。 二、工程任务分解本章工程可以划分为以下主要任务: 工程1:猜数字游戏任务1:确定变量任务2:选择数据类型任务3:确定表达式 任务4:循环猜数,并统计次数 三、任务1・1:确定变量 任务分析 猜数游戏需要计算机产生随机数,还需要用户输入猜测的数字。 本任务就是要确定用哪些变量来保存这些数据,并且如何命名变量。 相关知识点 (1)标识符 Java的包名、类名、方法名、参数名、变量名等都需要用一个符号来标识,这个符号就称为标识符,java标识符的命名规那么如下: 组成:可由大小写字母、数字、下划夜(_)和美元符号($) 组成。 开头:必须以字母、下划线或美元符号($)开头。 字母:严格区分字母

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值