一、本单元知识点概述

二、本单元目标

(Ⅰ)重点知识目标

1.if语句的格式及执行流程
2.switch语句的格式及执行流程

(Ⅱ)能力目标

1.掌握if语句的格式及执行流程
2.掌握switch语句的格式及执行流程
3.了解case的穿透性

三、本单元知识详讲

4.1 流程控制

在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说,程序的流程对运行结果

有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现

我们要完成的功能。

4.1.1 顺序结构的概述★★★

根据代码编写的顺序,从上到下运行。

4.1.2 顺序结构的执行顺序★★★

案例演示:

1 public static void main(String[] args){
2 //顺序执行,根据编写的顺序,从上到下运行
3 System.out.println(1);
4 System.out.println(2);
5 System.out.println(3);
6 }

4.2 判断语句

4.2.1 if语句的格式★★

if语句第一种格式:

1 if(关系表达式){
2 语句体;
3 }

4.2.2 if语句的执行流程★★★

执行流程

首先判断关系表达式看其结果是true还是false

如果是true就执行语句体

如果是false就不执行语句体

案例演示:

 1 public static void main(String[] args){
2 System.out.println("开始");
3 // 定义两个变量
4 int a = 10;
5 int b = 20;
6 //变量使用if判断
7 if (a == b){
8 System.out.println("a等于b");
9 }
10 int c = 10;
11 if(a == c){
12 System.out.println("a等于c");
13 }
14 System.out.println("结束");
15 }

4.2.3 if...else语句的格式★★

if语句第二种格式:

1 if(关系表达式) {
2 语句体1;
3 }else {
4 语句体2;
5 }

4.2.4 if...else语句的执行流程★★★★

执行流程

首先判断关系表达式看其结果是true还是false

如果是true就执行语句体1

如果是false就执行语句体2

案例演示:

 1 public static void main(String[] args){
2 // 判断给定的数据是奇数还是偶数
3 // 定义变量
4 int a = 1;
5 if(a % 2 == 0) {
6 System.out.println("a是偶数");
7 } else{
8 System.out.println("a是奇数");
9 }
10 System.out.println("结束");
11 }

4.2.5 if..else if...else语句的格式★★

if语句第三种格式:

 1 if (判断条件1) {
2 执行语句1;
3 } else if (判断条件2) {
4 执行语句2;
5 }
6 ...
7 else if (判断条件n) {
8 执行语句n;
9 } else {
10 执行语句n+1;
11 }

4.2.6 if..else if...else语句的执行流程★★★

执行流程

首先判断关系表达式1看其结果是true还是false

如果是true就执行语句体1

如果是false就继续判断关系表达式2看其结果是true还是false

如果是true就执行语句体2

如果是false就继续判断关系表达式…看其结果是true还是false

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

案例演示:

 1 public static void main(String[] args) {
2 // x和y的关系满足如下:
3 // x>=3 y = 2x + 1;
4 //‐1<=x<3 y = 2x;
5 // x<=‐1 y = 2x – 1;
6 // 根据给定的x的值,计算出y的值并输出。
7 // 定义变量
8 int x = 5;
9 int y;
10 if (x>= 3) {
11 y = 2 * x + 1;
12 } else if (x >= ‐1 && x < 3) {
13 y = 2 * x;
14 } else {
15 y = 2 * x ‐ 1;
16 }
17 System.out.println("y的值是:"+y); }

4.2.7 判断语句案例★★★

指定考试成绩,判断学生等级

90-100 优秀

80-89 好

70-79 良

60-69 及格

60以下 不及格

4.2.8 代码演示★★★

 1 public static void main(String[] args) {
2 int score = 100;
3 if(score<0 || score>100){
4 System.out.println("你的成绩是错误的");
5 }else if(score>=90 && score<=100){
6 System.out.println("你的成绩属于优秀");
7 }else if(score>=80 && score<90){
8 System.out.println("你的成绩属于好");
9 }else if(score>=70 && score<80){
10 System.out.println("你的成绩属于良");
11 }else if(score>=60 && score<70){
12 System.out.println("你的成绩属于及格");
13 }else { System.out.println("你的成绩属于不及格");
14 }
15 }

4.3 选择语句

4.3.1 switch语句格式★★

switch语句格式:

switch(表达式) {
    case 常量值1:
            语句体1;
            break;
    case 常量值2:
            语句体2;
            break;
        ...
    default:
            语句体n+1;
            break;
    }

4.3.2 switch执行流程★★★★

执行流程

首先计算出表达式的值

其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结

束。

最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

案例演示:

 1 public static void main(String[] args) {
2 //定义变量,判断是星期几
3 int weekday = 6;
4 //switch语句实现选择
5 switch(weekday) {
6 case 1:
7 System.out.println("星期一");
8 break;
9 case 2:
10 System.out.println("星期二");
11 break;
12 case 3:
13 System.out.println("星期三");
14 break;
15 case 4:
16 System.out.println("星期四");
17 break;
18 case 5:
19 System.out.println("星期五");
20 break;
21 case 6:
22 System.out.println("星期六");
23 break;
24 case 7:
25 System.out.println("星期日");
26 break;
27 default:
28 System.out.println("你输入的数字有误");
29 break;
30 }

switch语句中,表达式的数据类型,可以是byte,short,int,char,enum(枚举),JDK7后可以接收字符串。

4.3.3 case的穿透性★★★★

在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运

行,直到遇到break,或者整体switch结束。

 1 public static void main(String[] args) {
2 int i = 5;
3 switch (i){
4 case 0:
5 System.out.println("执行case0");
6 break;
7 case 5:
8 System.out.println("执行case5");
9 case 10:
10 System.out.println("执行case10");
11 default:
12 System.out.println("执行default");
13 }

上述程序中,执行case5后,由于没有break语句,程序会一直向后走,不会在判断case,也不会理会break,直接

运行完整体switch。

由于case存在穿透性,因此初学者在编写switch语句时,必须要写上break。

四、本单元知识总结

1. if语句的格式及执行流程。
2. switch语句的格式及执行流程。

🧚‍♂️全套Java教程_Java基础入门教程,零基础小白自学Java必备教程👨‍💻004 # 第四单元 流程控制语句上 #的更多相关文章

  1. 2019年最新超级有趣好玩的html+css网页布局课程,前端入门基础,html5+css3零基础入门课程-黑马程序员pink老师精心录制

    大家好,我是黑马程序员pink老师!! 本次视频是前端零基础入门的课程,pink老师采取有趣好玩讲法,带你快乐的学习枯燥的html+css知识,学完之后让你能快速布局pc端页面.代码也可以讲的好玩有趣 ...

  2. PHP开发人员对JAVA的WEB开发入门(初版-基础知识)

    最近准备对其他部门PHP开发的童鞋做一个对JAVA的培训.知己知彼,百战不殆,我要先了解点PHP,才能确认他们的基础,达到好的授课效果. PHP(原始为Personal Home Page的缩写,后正 ...

  3. 🤩全套Java教程_Java基础入门教程,零基础小白自学Java必备教程👻002 # 第二单元 常量,变量,数据类型 #

    一.本单元知识点概述 二.本单元目标 (Ⅰ)重点知识目标 1.定义出各种数据类型的变量2.理解自动类型提升3.理解强制类型转换 (Ⅱ)能力目标 1.能够定义出所有类型的常量 2.理解Java中的基本数 ...

  4. ☠全套Java教程_Java基础入门教程,零基础小白自学Java必备教程👾#010 #第十单元 Scanner类、Random类 #

    一.本单元知识点概述 (Ⅰ)知识点概述 二.本单元教学目标 (Ⅰ)重点知识目标 1.API的使用2.Scanner类的使用步骤3.Random类的使用 (Ⅱ)能力目标 1.掌握API的使用步骤2.使用 ...

  5. 全套Java教程_Java基础入门教程,零基础小白自学Java必备教程 #011 # 第十一单元 String&ArrayList #

    一.本单元知识点概述 (Ⅰ)知识点概述 二.本单元教学目标 (Ⅰ)重点知识目标 1.ArrayList集合的常用方法2.ArrayList存储数据和遍历数据3.String类的构造方法4.String ...

  6. Java学习_Java快速入门

    Java简介 安装完JDK后,需要设置一个JAVA_HOME的环境变量,它指向JDK的安装目录.在Windows下,它是安装目录,类似: C:\Program Files\Java\jdk-15 把J ...

  7. Java基础之路(四)--流程控制语句

    本次我们来聊一聊Java当中的循环语句. 循环语句分三种:1.for2.while3.do--while. 三种循环语句的任务是不同的,方法也是不同的.当然他们各自的流程图也是不一样的. 3.1 wh ...

  8. python基础入门之函数基础

    **python函数**一.def语名 def语名在运行的时候创建一个新的函数对象并且赋值一个变量名 一个def语句可以出现在任一语句可以出现的地方(python中所有的语名都是实时运行的,没有编译这 ...

  9. Java学习笔记(四)——流程控制语句

    一.条件语句 1.if条件语句 (1)语法: if(条件) { 条件成立时的代码 } (2)执行过程 2.if else语句 if(条件) { 条件成立时的代码 } else { 不成立的代码 } 3 ...

随机推荐

  1. 踩坑记录之 -- String.IndexOf 在 .Net5 和 .Netcore3 中返回值不一样

    .Net Core3.1 下 运行此段代码 class Program { static void Main(string[] args) { // .NET Core 3.1 string s = ...

  2. SpringCloud 商品架构例子(一)

    架构演进和分布式系统基础知识 1.传统架构演进到分布式架构 简介:讲解单机应用和分布式应用架构演进基础知识 高可用 LVS+keepalive 单体应用: 集群: 微服务架构: 1.单体应用: 开发速 ...

  3. 了解Flask

    了解Flask 什么是Flask Flask 是一个微框架(Micro framework),所谓微框架,它就是很轻量级的,作者划分出了Flask应该负责什么(请求路由.处理请求.返回响应).不应该负 ...

  4. 理解Java中对象基础Object类

    一.Object简述 源码注释:Object类是所有类层级关系的Root节点,作为所有类的超类,包括数组也实现了该类的方法,注意这里说的很明确,指类层面. 所以在Java中有一句常说的话,一切皆对象, ...

  5. ASP.NET真分页_接前篇引用AspNetPager.dll进行数据分页

    一.前端准备工作 1.之前我写到过<Asp.net中引用AspNetPager.dll进行数据分页>  这种分页方式只能在前台将数据分页,而每次点击查询时对目标数据库还是全查询,这样不仅会 ...

  6. seo高手教你seo优化排名该怎么做

    seo高手教你seo优化排名该怎么做 第一节:如何在本地搭建服务器环境 本节课程主要是讲如何利用 Xampp在本地搭建服务器环境 .网站使用asp和php比较常见,当然,就目前而言,使用php搭建网站 ...

  7. 约瑟夫环问题详解 (c++)

    问题描述: 已知n个人(以编号0,2,3...n-1分别表示)围坐在一起.从编号为0的人开始报数,数到k的那个人出列:他的下一个人又从1开始报数,数到k的那个人又出列:依此规律重复下去,直到圆桌周围的 ...

  8. 分布式技术专题-分布式协议算法-带你彻底认识Paxos算法、Zab协议和Raft协议的原理和本质

    内容简介指南 Paxo算法指南 Zab算法指南 Raft算法指南 Paxo算法指南 Paxos算法的背景 [Paxos算法]是莱斯利·兰伯特(Leslie Lamport)1990年提出的一种基于消息 ...

  9. Pycharm去除波浪线等相关操作

  10. Coreos配置docker镜像加速器

    CoreOS配置docker镜像加速器 CoreOS下的Docker配置是通过flannel unit来实现的. 1) 通过命令 systemctl cat docker 可以看出配置文件的默认位置 ...