分支语句if-switch

  • 前言
  • 一、分支结构----流程控制
    • 1.分支结构的概述
      • 1.1 If语句的第一种格式
        • 1.1.1 格式
        • 1.1.2. 说明
        • 1.1.3.执行流程
        • 1.1.4.代码示例
        • 1.1.5.If语句的注意事项
      • 1.2 if语句的第二种格式
        • 1.2.1.格式
        • 1.2.2.说明
        • 1.2.3.执行流程
        • 1.2.4.代码示例
      • 1.3 If语句的第三种格式
        • 1.3.1.格式
        • 1.3.2.执行流程
        • 1.2.3.说明
        • 1.2.4代码示例
    • 2. switch语句
      • 1.概念
      • 2.格式:
      • 3.执行流程:
      • 4.代码示例
      • 5.switch语句的注意事项
        • 1.单词解释:
        • 2.表达式:
        • 3.case后面只能跟常量,不能跟变量。
        • 4.case穿透
        • 5.case穿透代码示例:
        • 6.default语句
        • 7.Switch语句结束的条件,
  • 二、If和switch语句的区别
    • 1.相同点
    • 2.不同点
  • 总结

前言

在一个程序中,有很多的代码,代码的执行顺序,就是流程,用于控制代码流程的方式,就是流程控制,接下来我们学习一下流程控制


提示:以下是本篇文章正文内容,下面案例可供参考

一、分支结构----流程控制

1.在一个程序中,有很多的代码,代码的执行顺序,就是流程
2.用于控制代码流程的方式,就是流程控制。
3.流程控制的分类: (1)分支结构。 (2)循环结构

1.分支结构的概述

1.到达某个状态时,可能会有多种情况,每种情况都需要提前准备好,所以多条路的路口就是一个分支。代码写的多,程序运行的少。

2.实现格式有三种:

(1)if
(2)if.....else
(3)if...else if...else if........else

①if语句:if是如果的意思,满足了这种条件,才那个执行相应的代码,实现不同的逻辑
②Switch语句:根据某个变量的值,判读符合哪种执行条件。

1.1 If语句的第一种格式

1.1.1 格式

if(布尔表达式) {语句体;
}

1.1.2. 说明

(1)If语句后面跟着的小括号,里面必须是boolean类型的值,if语句后面的小括号中,只要是计算结果是boolean类型,就合法。
(2)语句体,可以是任意操作。

1.1.3.执行流程

(1)计算布尔表达式的值,要么为true,要么为false (2)如果计算结果为true,执行语句体
(3)如果计算结果为false,就不执行语句体。

1.1.4.代码示例

//第一种方式if(布尔类型){语句体}//键盘录入,判断年龄是否大于十八岁,是的话输出年龄大于十八已成年public static void main(String[] args){//把Scanner方法new进来Scanner sc = new Scanner(System.in);//输出提示语System.out.println("请输入你的年龄:");//获取键盘输入的数据int age = sc.nextInt();if(age > 18){System.out.println("年龄大于十八,已成年");}}

1.1.5.If语句的注意事项

1.if后面跟着的小括号里面,必须是boolean类型的值。
2.If语句后面跟着的小括号里面,只要计算结果为boolean类型,就算合法
3.在小括号后面不要加分号,一般来说,有左大括号,就没有分号,有分号,就没左大括号。
4.语句体:可以是任意语句,如果语句体只有一句,那么大括号可以省略,但是建议所有情况都加上大括号,不要省略。

1.2 if语句的第二种格式

1.2.1.格式

if(条件表达式) {语句体1;
}else{语句体2;
}

1.2.2.说明

(1)是否有某种情况,可以语句体1和语句体2都不执行?不可能,else就已经包含了if不满足的所有状态。
(2)是否有某种情况,可以让语句体1和语句体2都执行?不可能,因为语句体1执行了,if语句就直接结束了。
(3)只能执行其中的一句,并且一定会执行其中的一句

1.2.3.执行流程

(1)计算条件表达式的值,要么为true要么为false (2)如果条件表达式的值为true,执行语句体1
(3)如果条件表达式的值为false,执行语句体2

1.2.4.代码示例

//判断键盘输入的a与b哪个大public static void main(String[] args){Scanner sc = new Scanner(System.in);//键盘提示获取输入的值System.out.println("请输入a的值:");int a = sc.nextInt();System.out.println("请输入b的值:");int b = sc.nextInt();if ( a > b ){System.out.println("a的值最大,最大为:" + a);}else{System.out.println("b的值最大,最大为:" + b);}}

1.3 If语句的第三种格式

1.3.1.格式

if(条件表达式1) {语句体1;
}else if (条件表达式2) {语句体2;
} else if(条件表达式3) {语句体3;
}
.......
}else if(条件表达式n) {语句体n;
}else{语句体n+1;
}

1.3.2.执行流程

(1)计算条件表达式1,如果为true,就执行语句体1
(2)如果条件表达式1位false,计算条件表达式2,如果为true,就执行语句体2
(3)如果条件表达式2位false,就执行条件表达式3…
(4)如果条件表达式1~条件表达式n全都为false,那么就执行语句体else n+1

1.2.3.说明

(1)如果条件表达式1不满足 条件表达式2计算为true,执行语句体2
(2)最后的else语句可以有也可以没有,如果有,就一定有执行的内容,如果没有就可能什么都不执行。

1.2.4代码示例

//键盘录入三个数判断大小  if(){//                        }else if(){//                        }else{//                        }public static void main(String[] args){//new进来Scanner方法Scanner sc = new Scanner(System.in);//提示语System.out.println("请输入三个整数:");int a = sc.nextInt();int b = sc.nextInt();int c = sc.nextInt();int mun;if(a>b){if(a>c){System.out.println("三个数中最大的是:" + a );}else{System.out.println("三个数中最大的是:" + c );}}else{if(b>c){System.out.println("三个数中最大的是:" + b );}else{System.out.println("三个数中最大的是:" + c );}}}

2. switch语句

1.概念

switch:便是英文中的开关,每个条件都像一扇门,开着的,咱们就可以执行,否则就到下一扇门判断。

2.格式:

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

3.执行流程:

(1)计算表达式的值,分别和各个常量匹配。 (2)如果和常量1匹配,那么就执行语句体1,break,switch语句就结束了。
(3)如果和常量1不匹配,那么就判断是否和常量2匹配,如果匹配就执行语句体2,break,switch语句结束。
(4)以此类推,如果常量1~常量n都没有和表达式的值匹配,那么就执行default中的内容,switch语句结束。

4.代码示例

//键盘输入月份进行判断季节键盘录入一个月份,输出这个月份的季节
//345月是春季,678是夏季,9、10、11秋季,12、1、2冬季
//其他数字,没有任何季节,录入错误public static void main(String[] args){Scanner sc = new Scanner(System.in);//new进来方法System.out.println("请输入一个月份进行判断季节:");int m = sc.nextInt();switch(m){case (12):System.out.println("您输入的月份是" + m + ",该月份为冬季");break;case (1):System.out.println("您输入的月份是" + m + ",该月份为冬季");break;case (2):System.out.println("您输入的月份是" + m + ",该月份为冬季");break;case (3):System.out.println("您输入的月份是" + m + ",该月份为春季");break;case (4):System.out.println("您输入的月份是" + m + ",该月份为春季");break;case (5):System.out.println("您输入的月份是" + m + ",该月份为春季");break;case (6):System.out.println("您输入的月份是" + m + ",该月份为夏季");break;case (7):System.out.println("您输入的月份是" + m + ",该月份为夏季");break;case (8):System.out.println("您输入的月份是" + m + ",该月份为夏季");break;case (9):System.out.println("您输入的月份是" + m + ",该月份为秋季");break;case (10):System.out.println("您输入的月份是" + m + ",该月份为秋季");break;case (11):System.out.println("您输入的月份是" + m + ",该月份为秋季");break;default :System.out.println("没有任何季节,录入错误");}}

5.switch语句的注意事项

1.单词解释:

(1)Switch:开关 case:情况; break:破坏、退出; default:默认

2.表达式:

(1)Jdk1.5之前支持:byte、short、char、int
(2)Jdk1.5支持:枚举类型
(3)Jdk7及以后支持:String

3.case后面只能跟常量,不能跟变量。

4.case穿透

每个case语句体后面,一定要跟上一个break语句,否则就无法结束switch语句,并且发生case穿透。case穿透的利用:多个情况如果是相同的执行逻辑,那么就可以使用case穿透。

5.case穿透代码示例:

public static void main(String[] args){Scanner sc = new Scanner(System.in);//new进来方法System.out.println("请输入一个月份进行判断季节:");int n = sc.nextInt();switch(n){case (12):case (1):case (2):System.out.println("您输入的月份是" + n + ",该月份为冬季");break;case (3):case (4):case (5):System.out.println("您输入的月份是" + n + ",该月份为春季");break;case (6):case (7):case (8):System.out.println("您输入的月份是" + n + ",该月份为夏季");break;case (9):case (10):case (11):System.out.println("您输入的月份是" + n + ",该月份为秋季");break;default :System.out.println("没有任何季节,录入错误");}}

6.default语句

可以写也可以不写,如果不写,就有可能一个语句都不执行,建议把default语句加上。
default语句可以写在任意位置,无论你写在什么位置,都是在最后去匹配,建议把default语句写在最后。

7.Switch语句结束的条件,

(1)碰到break语句
(2)碰到右大括号。

二、If和switch语句的区别

1.相同点

If语句和switch都可以表达分支结构

2.不同点

①If语句格式相对灵活,更加强大,switch语句相对弱小,所有的switch语句都可以被if语句替代。
②If语句更多的是做一些连续性的判断,而switch语句更多的是做一些离散型的匹配。
③If语句每次都需要获取表达式的值,而switc只获取一次表达式的值,所以相对switch的效率要高一些。


总结

以上就是今天要讲的内容,本文仅仅介绍了流程控制的两种分类,个人感觉if是使用最经常的,要熟练掌握,多练几遍,巩固巩固。(根据自己的学习以及翻阅知识点整理的,侵权删)

java基础知识点(5)——分支语句if-switch相关推荐

  1. java基础案例教程前4章知识点_java学习记录4 Java基础知识点

    java学习记录4 Java基础知识点 1. 注释 单行注释 使用"//"开头,后面是注释的内容 一般在要注释的语句的上面加注释 多行注释 以"/*"开头,以& ...

  2. 整理的java基础知识点笔记

    java基础知识点 (涉及到图片的资源因为在电脑本地,挨个挨个找太浪费时间就不找了) 基础点 **字节:**每逢8位是一个字节,这是数据存储的最小单位. 计算机中的数据转换: ​ 1 Byte = 8 ...

  3. Java基础知识点整理(2022年最新版)

    看了网上很多关于Java基础知识点整理的文章,但是感觉都不是很好,要么不全面,要么不准确,要么排版太乱了,所以今天整理了一份Java基础知识点整理(2022年最新版),希望对大家有帮助哈~ 由于本文篇 ...

  4. java基础知识大全,java 基础知识点汇总

    java 基础知识点汇总 问题一:我声明了什么! String s = "Hello world!"; 许多人都做过这样的事情,但是,我们到底声明了什么?回答通常是:一个Strin ...

  5. java基础知识点整理一

    java基础知识点整理一 引言 '''突然发觉任何一门语言的基础知识部分,都比较杂一些.如果个人经过梳理之后,知识体系系统化,可以让基础更加牢靠一些.但是还是会有一些遗忘.所以,我想把一些比较重要但是 ...

  6. java重要基础知识点_必看 | 新人必看的Java基础知识点大梳理

    原标题:必看 | 新人必看的Java基础知识点大梳理 各位正在认真苦学Java的准大神,在这烈日炎炎的夏季里,老九君准备给大家带来一个超级大的"冰镇西瓜,"给大家清凉一下,压压惊. ...

  7. JAVA基础知识点-入门必备

    本文主要是我之前复习Java基础原理过程中写的Java基础知识点总结.Java的知识点其实非常多,并且有些知识点比较难以理解,有时候我们自以为理解了某些内容,其实可能只是停留在表面上,没有理解其底层实 ...

  8. 【Java基础篇】你真的懂switch语句吗?

    switch语句语法 switch (expression) {case value://语句break;//可选//可以有任意个case语句default://可选//语句} 注意点 switch的 ...

  9. java基础:【分支、循环语句】swith csae 分支语句

    前言 正文 分支流程控制语句 if  ... else 语法: 1)if(布尔值|逻辑|比较表达式){ 语句块 }else{ 语句块 } 2)if(表达式){ }else if(表达式){ } . . ...

最新文章

  1. 【转】ABAP的坑2
  2. micropython开发idethonny_ESP32 Micropython开发利器Thonny IDE介绍
  3. static class 静态类(Java)转
  4. 饿了么翻车,美团被质疑,马云也赔了40亿,这项技术为什么让人害怕?
  5. 第60课 比特超市 《小学生C++趣味编程》
  6. python2 urllib2_python2.7 urllib和urllib2
  7. kafka 分组消费topic_关于kafka更改消费者对应分组下的offset值
  8. 曾经我对python shutil很迷茫,直到我看完这篇实操目录……
  9. labview由于其他对话正在访问FIFO_LabVIEW常用工具、调试工具汇总
  10. CCNA学习指南中文第七版——8.22章节详解
  11. 毕业设计 嵌入式电子时钟设计与实现
  12. 宗成庆《统计自然语言处理》 目录的思维导图
  13. 《手把手教你学DSP-基于TMS320F28335》书中的错误
  14. faster RCNN之RPN详解
  15. 员工培训与开发实训心得体会_人力资源实训个人总结
  16. 华硕aura完全卸载_手感细腻,外观出色,配件良心、华硕TUF GAMING K7 光轴机械键盘...
  17. C#,编写制作《扫雷》游戏代码的前传——作弊手段大曝光
  18. linux关闭防火墙安装Vmware tools
  19. python中集合的符号_python集合中的操作符有哪些?怎么用?
  20. STM32开发 --- W25Q128读写、SPI通信

热门文章

  1. leetcode 1189 python
  2. java接口可以接两个吗,接口可以在Java中扩展多个接口吗?
  3. SQL-必知必会-触发器
  4. dw选项卡怎么设置_EXCEL入门之设置
  5. 国产数据库丨国产数据库发展十策(一):开发一个数据库到底需要多少人?...
  6. 直播预告丨MySQL中的索引探究
  7. 【感恩,回馈,展望】2018 ACOUG 年会盛大来袭!
  8. 消除数据孤岛,华为云DRS让一汽红旗ERP系统数据活起来
  9. Python基础语法和数据类型最全总结
  10. 规模化敏捷框架何从入手?这篇文章把SAFe讲透了!