一、选择结构

  • 选择结构用于判断给定的条件,根据判断的结果来控制程序的流程。
  • Java中选择结构的语法主要分为'if...else'语句'switch...case'语句
  • Java中选择结构语句在语法上可以随意嵌套,但不建议嵌套太深,会降低代码可读性。

二、'if...else'语句

描述:'if'单词意为如果,'else'单词意为否则。Java中使用'if...else'相关语句进行条件判断

分类:

  1. 'if'单选择结构
  2. 'if'双选择结构
  3. 'if'多选择结构

Ⅰ、'if'单选择结构

语法:

if(/* 布尔表达式 */){
/* 如果布尔表达式为true将执行的语句 */
}

描述:

  • 一个'if'语句包含一个布尔表达式和一条或多条语句。
  • 如果布尔表达式的值为'true',则执行'if'语句中的代码块,否则执行'if'语句块后面的代码。

示例:

/* 运行结果为控制台输出:这是if语句 */
public static void main(String args[]){
int x = 10;
if(x < 20){
System.out.print("这是if语句");
}
}

Ⅱ、'if'双选择结构

语法:

if(/* 布尔表达式 */){
/* 如果布尔表达式的值为true将执行的语句 */
}else{
/* 如果布尔表达式的值为false将执行的语句 */
}

描述:

  • 'if'语句后面可以跟'else'语句,当'if'语句的布尔表达式值为'false'时,'else'语句块会被执行。

示例:

/* 运行结果为控制台输出:这是else语句 */
public static void main(String args[]){
int x = 30;
if(x < 20){
System.out.print("这是if语句");
}else{
System.out.print("这是else语句");
}
}

Ⅲ、'if'多选择结构

语法:

if(/* 布尔表达式1 */){
/* 如果布尔表达式1的值为true,将执行的语句 */
}else if(/* 布尔表达式2 */){
/* 如果布尔表达式1的值为false,且布尔表达式2的值为true,将执行的语句 */
}else if(/* 布尔表达式3 */){
/* 如果布尔表达式1和布尔表达式2的值都为false,而布尔表达式3的值为true,将执行的语句 */
}else{
/* 如果布尔表达式1、布尔表达式2和布尔表达式3的值都为false,将执行的语句 */
}

描述:

  • 'if'语句后面可以跟'else if…else'语句,而且'else if'语句可以重复使用,这种语句可以检测到多种可能的情况。

注意:

  • 'if'语句至多有 1 个'else'语句,'else'语句在所有的'else if'语句之后。
  • 'if'语句可以有若干个'else if'语句,它们必须在'else'语句之前。
  • 一旦其中一个'else if'语句或'if'语句检测为true,其他的'else if'以及'else'语句都将跳过执行

示例:

/* 运行结果为控制台输出:这是第二个if else语句 */
public static void main(String args[]){
int x = 30;
if(x < 20){
System.out.print("这是if语句");
}else if(x < 30){
System.out.print("这是if else语句");
}else if(x < 40){
System.out.print("这是第二个if else语句");
}else{
System.out.print("这是else语句");
}
}

三、'switch'多选择结构

语法:

switch(variable){
case value1:
/* 若变量的值与value1相同,将执行的语句 */
break;/* break语句为可选项 */
case value2:
/* 若变量的值与value2相同,将执行的语句 */
break;
case value3:
/* 若变量的值与value3相同,将执行的语句 */
break;
default:/* default语句为可选项 */
/* 若变量的值与value1、value2、value3都不同,将执行的语句 */
}

描述:

  • 'switch...case'语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

注意:

  • 'switch...case'语句中的变量类型可以是byte、short、int、char。从JavaSE7开始,'switch...case'语句支持String类型了,同时case标签必须为字符串常量或字面量。
  • 'switch'语句可以拥有多个'case'语句。每个'case'后面跟一个要比较的值和冒号。'case'语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量
  • 当变量的值与'case'语句的值相等时,那么'case'语句之后的语句开始执行,直到'break'语句出现才会跳出'switch'语句,执行'switch'代码块下面的代码。
  • 'case'语句不是必须要包含'break'语句。如果没有'break'语句出现,程序会继续执行下一条'case'语句,直到出现'break'语句。
  • 'case'语句可以多次重复使用。
  • 'switch'语句可以包含一个'default'语句分支,该分支一般是'switch'语句的最后一个分支(可以在任何位置,但建议在最后一个)。'default'在没有'case'语句的值和变量值相等的时候执行。'default'分支不需要'break'语句
  • 'switch...case'语句执行时,一定会先进行匹配,匹配成功则执行该分支里的语句,再根据是否有'break',判断是否继续执行下面其他分支里的语句,或是跳出整个'switch...case'语句。

示例:

/* 运行结果为控制台依次输出:1 2 3 */
public static void main(String args[]){
int i = 1;
switch(i){
case 0:
System.out.println("0");
case 1:
System.out.println("1");
case 2:
System.out.println("2");
case 3:
System.out.println("3");
break;
default:
System.out.println("default");
}
}

Java流程控制:选择结构的更多相关文章

  1. 黑马程序员——C语言基础 流程控制 选择结构和循环结构

    ---恢复内容开始--- Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)流程控制 1> 顺序结构:默认的流程 ...

  2. Java流程控制与Scanner类的使用

    Java流程控制与Scanner类的使用 Scanner类 Scanner类可以使程序接受键盘输入,实现人机交互 一个完整的Scanner的使用例子: //创建一个扫描器对象,用于接收键盘数据 Sca ...

  3. 038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结

    038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结 本文知识点:案例演示switch结构并对sw ...

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

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

  5. 036 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 03 嵌套if结构

    036 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 03 嵌套if结构 本文知识点:Java中的嵌套if结构 什么是嵌套if结构? 概念: 嵌套if结构 ...

  6. 035 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 02 多重if结构

    035 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 02 多重if结构 本文知识点:Java中的多重if结构 选择结构回顾 if选择结构 注意: 1.条 ...

  7. 034 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 01 流程控制概述

    034 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 01 流程控制概述 本文知识点:Java中的流程控制相关概念的认识 三大流程控制语句结构的简介 顺序 ...

  8. 053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结

    053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结 本文知识点: 流程控制知识总结 流程控制知识总结 选择结构语句 循环结构语句 ...

  9. Java流程控制:顺序结构

    一.流程控制 Java中的流程控制语句可以这样分类:顺序结构.选择结构.循环结构.这三种结构就足够解决所有的问题了! 二.顺序结构 描述: Java流程控制的基本结构就是顺序结构,除非特别指明,否则J ...

  10. JAVA 流程控制之选择语句

    在程序设计时,有三种基本技术可以改变程序的流程控制: 调用方法: 选择: 循环. 在这里,我们主要来讲讲选择语句. JAVA中的选择语句与C语言中的基本相同,包括: if 语句: if/else 语句 ...

随机推荐

  1. Neeto-Vue:我为了记笔记,手写了一个为知笔记客户端

    构建自托管的笔记系统 这两年各种笔记系统快速井喷,好像谁都能来掺一脚,app store随便搜索一个关键字就会有一大堆的结果,从老牌的印象笔记,Bear,MWeb,有道云笔记再到新星专注笔记之类,从买 ...

  2. linux(5)查看历史命令执行记录history

    前言 我们每次敲打linux命令的时候,有时候想用之前用过的命令,一般情况下,我们都会按↑↓箭头来寻找历史的命令记录,那如果我想用1天前执行的某条命令,难道还要按↑100次?显示这样是不现实的,我们可 ...

  3. H - 看病要排队

    看病要排队这个是地球人都知道的常识.不过经过细心的0068的观察,他发现了医院里排队还是有讲究的.0068所去的医院有三个医生(汗,这么少)同时看病.而看病的人病情有轻重,所以不能根据简单的先来先服务 ...

  4. HDU6504 Problem E. Split The Tree【dsu on tree】

    Problem E. Split The Tree Problem Description You are given a tree with n vertices, numbered from 1 ...

  5. Codeforces Round #647 (Div. 2) - Thanks, Algo Muse! A、Johnny and Ancient Computer B、Johnny and His Hobbies C、Johnny and Another Rating Drop

    题目链接:A.Johnny and Ancient Computer 题意: 给你两个数a,b.问你可不可以通过左移位运算或者右移位运算使得它们两个相等.可以的话输出操作次数,不可以输出-1 一次操作 ...

  6. Spring web之restTemplate超时问题处理

    问题 项目中有个远程服务因为某些原因会访问不通,于是就在调用的那一步挂起无法结束了. 查看代码 代码大概如下 CloseableHttpClient closeableHttpClient = Htt ...

  7. SpringBoot简单整合redis

    Jedis和Lettuce Lettuce 和 Jedis 的定位都是Redis的client,所以他们当然可以直接连接redis server. Jedis在实现上是直接连接的redis serve ...

  8. Linux系统编程【3.2】——ls命令优化版和ls -l实现

    前情提要 在笔者的上一篇博客Linux系统编程[3.1]--编写ls命令中,实现了初级版的ls命令,但是与原版ls命令相比,还存在着显示格式和无颜色标记的不同.经过笔者近两天的学习,基本解决了这两个问 ...

  9. oslab oranges 一个操作系统的实现 实验一

    实验目的: 搭建基本实验环境,熟悉基本开发与调试工具 对应章节:第一.二章 实验内容: 1.认真阅读章节资料 2.在实验机上安装virtualbox,并安装ubuntu 3.安装ubuntu开发环境, ...

  10. codeforces 920E(非原创)

    E. Connected Components? time limit per test 2 seconds memory limit per test 256 megabytes input sta ...