一、判断语句

  1、判断语句1-- 单 if 语句(单分支结构)

    语法格式:

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

     执行流程:

      •  首先判断条件表达式看其结果是 true 还是 false;
      • 如果是 true 就执行语句体;
      • 如果是 false 就不执行语句体。

    流程图:

  

    Tips:当 if 后面只有一条语句时,可以省略 “{}”,但为了增强程序的可读性最好不要省略。

  2、判断语句2-- if...else 语句(标准的 if 语句)(双分支结构)

    语法格式:

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

    执行流程:

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

      流程图:

  

  3、判断语句3 -- if...else if...else 语句(多分支结构)

    语法格式:

if (判断条件1) {
  执行语句1;
} else if (判断条件2) {
  执行语句2;
}
...
}else if (判断条件n) {
  执行语句n;
} else {
  执行语句n+1;
}

    执行流程:

      •    首先判断关系表达式1 看其结果是 true 还是 false;
      • 如果是 true就执行语句体1;
      • 如果是 false 就继续判断关系表达式2看其结果是 true 还是 false;
      • 如果是 true 就执行语句体 2;
      • 如果是 false 就继续判断关系表达式... 看其结果是 true 还是  false;
      • .....
      • 如果没有任何关系表达式为 true,就执行语句体 n+1

   流程图: 

  

  4、if 语句和三元运算符的互换

    在某些简单的应用中, 可以使用 if...else 语句和三元运算符互换使用的。这样看起来更简便一些。

   Demo:

 public static void main(String[] args) {
  int a = 10;
  int b = 20;
  //定义变量,保存a和b的较大值
  int c;
  if(a > b) {
    c = a;
  } else {
    c = b;
  }
  //可以上述功能改写为三元运算符形式
  c = a > b ? a:b;
}

二、选择语句

  1、选择语句 -- switch

    语句格式:

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

    执行流程:

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

   流程图:

  

    注意:

    a、多个 case 后面的数值不可以重复,切必须是常量值

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

    c、switch 语句格式可以很灵活:前后顺序可以颠倒,而且break语句还可以省略。匹配哪一个case就从哪一个位置向下执行,直到遇到了break或者整体结束为止。

    d、default 语句可以省略,也可以写到任意位置,不一定会写在最后

  2、case 的穿透性

    在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运 行,直到遇到break,或者整体switch结束。

   Demo:

 public static void main(String[] args) {
  int i = 5;
switch (i){
4   case 0:
    System.out.println("执行case0");
    break;
  case 5:
    System.out.println("执行case5");
  case 10:
    System.out.println("执行case10");
  default:
    System.out.println("执行default");
  }
}

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

     Tips:在使用 switch 语句时,写上  break 语句是非常有必要的。

Java 流程控制 之 分支结构——条件判断语句的更多相关文章

  1. 049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句

    049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句 本文知识点:break语句 break语句 break语句前情回顾 1.swi ...

  2. 050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句

    050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句 本文知识点:continue语句 continue语句 continue ...

  3. 『忘了再学』Shell流程控制 — 33、if条件判断语句(一)

    目录 1.单分支if条件语句 2.双分支if条件语句 (1)示例1 (2)示例2 什么是流程控制? 普通理解:Shell编写的程序是顺序执行的,也就是说第一命令先执行,然后接着执行第二条命令,然后再下 ...

  4. 『忘了再学』Shell流程控制 — 34、if条件判断语句(二)

    目录 1.多分支if条件语句格式 2.练习 3.说明 4.综合练习 1.多分支if条件语句格式 if [ 条件判断式1 ] then 当条件判断式1成立时,执行程序1 elif [ 条件判断式2 ] ...

  5. day_4流程控制之分支结构循环结构及for循环

    复习一下昨天的内容 1:变量的命名规范 只能由数字 字母 及下划线组成 不能以数字开头 不能与系统关键字重名 _开头有特殊含义 __开头__结尾的变量是魔法变量 支持大小驼峰 ,但建议使用下划线连接语 ...

  6. 046 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 08 for循环的注意事项

    046 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 08 for循环的注意事项 本文知识点:for循环的注意事项 for循环的注意事项 for循环有3个 ...

  7. 045 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 07 for循环应用及局部变量作用范围

    045 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 07 for循环应用及局部变量作用范围 本文知识点:for循环应用及局部变量作用范围 for循环 w ...

  8. 040 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 02 while循环的执行流程

    040 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 02 while循环的执行流程 本文知识点:while循环的执行流程 三种循环结构中的第一种--wh ...

  9. 037 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 04 switch结构

    037 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 04 switch结构 本文知识点:Java中的switch结构 选择结构分类 选择结构只有如下2种 ...

随机推荐

  1. Anaconda3(0)环境基本使用

    https://blog.csdn.net/u012005313/article/details/82347817 主要内容: 查看环境列表 创建新的 Python 环境 激活/停止 Python 环 ...

  2. Spring Cloud微服务安全实战_3-3_API安全之流控

    这几篇将API安全的 流控.认证.审计.授权 简单的过一遍,对这些概念先有个初步印象.后边还会详细讲解. 本篇说API安全之流控~第一印象. 一.概念 流控,流量控制,只放系统能处理的请求的数量过去, ...

  3. LeetCode 1213. Intersection of Three Sorted Arrays

    原题链接在这里:https://leetcode.com/problems/intersection-of-three-sorted-arrays/ 题目: Given three integer a ...

  4. springboot2.x自定义拦截把static静态文件给拦截的坑

    新人新帖,喷后请指正,谢谢 1.王中王,坑中坑 和很多人一样,我在springboo自定义配置登录拦截的时候,写一个WebConfig类继承WebMvcConfigureAdapter,重写AddRe ...

  5. IntelliJ IDEA 2019.2已经可以利用补丁永久破解激活了(持续更新)

    前面的文章中,一直在强调2019系列的idea无法使用补丁进行永久激活,但是最近发现,已经有大佬可以利用补丁将idea 2019.2及以下版本激活到2089年了,而且还不用改hosts,实在是佩服,不 ...

  6. Redis与Mysql双写一致性方案解析

    一 前言 首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用.在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作 但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存 ...

  7. Solr7.x学习(4)-导入数据

    导入配置可参考官网:http://lucene.apache.org/solr/guide,http://lucene.apache.org/solr/guide/7_7/ 1.数据准备(MySQL8 ...

  8. c# 创建socket连接辅助类-可指定超时时间

    using AD.SocketForm.Model; using NLog; using System; using System.Net.Sockets; using System.Threadin ...

  9. cad.net 在位编辑的原理猜测及找到在位编辑状态的图元

    在位编辑的时候会产生一个名为 0-RefEdit0 的图层,原因不明.... 在位编辑的本质是一个长事务,长事务是使用编辑库的对象替换源对象,相当于剪辑.不理解没关系,请看下面的聊天记录.... [贵 ...

  10. TRex,一个基于DPDK的数据包发生器,测试仪

    1. introduction TRex是cisco基于Intel dpdk开发的软件程序.推荐在CentOS/RHEL 7.6, 64bits中运行,否则connectx-4网卡不可使用. 笔者在U ...