选择结构(二)

学习本章会用到的单词:

case:实例,情形,情况

switch:转换,切换,开关

default:系统默认值,违约,预设。缺省

exit:出口,通道,退出

consume:消耗,耗费,

exception:例外,除外,异议


switch选择结构

语法:switch(表达式){

         case 常量 1:

            //代码块1;

              break;

        case 常量 2:

            //代码块2;

            break;

            ......    

default:

//代码块n;

      break;

}

switch结构中四个关键字解释:

这里是switch,case,default,break,都是Java的关键字。

》switch:表示:“开关”,这个开关就是switch关键字后面小括号里表达式的值,JDK1.7后,switch语句小括号里可以是int ,short,byte ,char,枚举类型 ,String类型表达式。

》case:表示“情况,情形”,case后可以是int,short,byte ,char,枚举,String类型,通常是一个固定的值。case块可以有多个,顺序可以改变,但是每个case后常量的值必须各不相同。

》default:表示默认,即其他情况都不满足。default后要紧跟冒号。default块和case块的先后顺序可以变动,不会影响程序执行的结果。通常,default块放在末尾,也可以省略。

》 break:表示“停止”,即跳出当前结构。

switch选择结构的执行具体过程:

先计算并获得switch后面小括号里的表达式或变量的值,然后将计算结果顺序与每个case后的常量比较,当二者相等时,执行这个case块中的代码;当遇到break时,就跳出switch选择结构。执行switch选择结构之后的代码。如果没有任何一个case后的常量与switch后的小括号中的值相等,则执行switch末尾部分的default块中的代码。

注意!

虽然break语句是可以省略的,,但是省略后会带来一些问题。省略之后的后果为,当某个case后的常量值与switch后小括号中的值相匹配时,执行该case块的代码,后面的case就不再进行条件判断,而直接执行后面所有case块中的代码,直到遇到break结束。所以在编写switch选择结构时不要忘记在每个case块后加上一个“break;”,用来跳出switch选择结构。

每个case后的代码块可以有多个语句,即可以有一组语句。而且不需要用“{ }”括起来。case和default后都有一个冒号,不能漏写,否则编译不能通过。对于每个case的结尾都要想一想是否需要跳出整个switch选择结构。如果需要,一定不要忘记写“break;”。

小结

swith选择结构的条件只能是等值的判断,而且只能是整形或字符型的等值判断。也就是说,switch选择结构只能用于判断一个整型变量或表达式是否等于某个整数值的情况,或者一个字符型变量或表达式是否等于某个字符的情况,并且每一个case后面的常量值都不同。多重if选择结构和switch选择结构很相似,它们都是用来处理多分支条件的结构,但是switch选择结构只能用于等值条件判断的情况。

选择结构总结

>Java中的if选择结构,包括以下形式。

基本的if选择结构:可以处理单一或组合条件的情况。

语法:

if(条件){

//代码块

}

if-else选择结构:可以处理简单的条件分支情况。这种形式结构简单,但在实际开发中使用非常频繁。

语法:

if(条件1){

//代码块1

}else{

  //代码块2

}

多重if选择结构:可以处理复杂的条件分支情况。多重if选择结构在解决需要判断的条件是连续的区间时有很大的优势。

语法:

if(条件1){

    //代码块1

}else if(条件2){

    //代码块2

}else{

    //代码块3

}

其中,else  if块可以有多个,也可以没有,需要几个else if完全取决于实际需求。else块最多有一个或者没有,else块必须要放在else   if块之后。

嵌套if选择结构:在if选择结构中又包含一个或多个if选择结构的情况,这种结构一般用于较为复杂的流程控制中。if选择结构嵌套的形式很多,以下形式为基本的结构。

语法:

if(条件1){

  if(条件2){

    //代码块1

}else{

    //代码块2

   }

}else{

  if(条件3){

    //代码块3

  }else{

    //代码块4

  }

}

Java中的switch选择结构。

当需要多重分支并且条件判断是等值判断的情况下,使用switch选择结构代替多重if选择结构会更简单,代码结构更清晰易读。

处理系统异常

》通过调用Scanner对象的hasNextInt()方法,来判断用户从键盘上输入的字符是否合法,如果用户提示输入的是数值,则根据输入的具体数值跳转到相应的菜单,如果用户输入的不是数字,则给出好友提示“请输入正确的数字!”.

通过判断,并给出用户提示,增加了程序的健壮性,是程序能够较好地处理发生的异常,在后面的学习中将介绍更多处理程序异常的方法。

本章总结

》当需要多重分支并且条件判断是等值判断的情况下,使用switch选择结构代替多重if选择结构会更简单,代码更清晰易读。在使用switch选择结构时不要忘记在每个case的最后上写上break语句。

》为了增加程序的健壮性,可以在程序中主动做出判断,并给用户友好的提示。

》在实际开发中,遇到分支情况时,通常会综合运用if选择结构的各种形式及switch选择结构来解决。

Java中的选择结构(二)的更多相关文章

  1. Java中的选择结构

    1.if选择结构 if选择结构是根据条件判断之后再做处理的一种语法结构 语法: if(条件){ 代码块 //条件成立之后要执行的代码,可以是一条语句,也可以是一组语句 } if后小括号里的条件是一个表 ...

  2. Java初认识--Java中的语法结构

    Java中的语法结构(程序流程控制) Java的语法结构有四种: 1.顺序结构. 顺序结构很简单,就是按顺序执行,输出就可以了. 2.判断结构. 判断结构的一个代表性的语句是if:if语句有三种格式体 ...

  3. Java开发知识之Java中的Map结构

    Java开发知识之Java中的Map结构 一丶Map接口 Map没有实现Collection接口,提供的是Key 到Value的映射. Map中.不能包含相同的Key,每个Key只能映射一个Value ...

  4. Java中的集合(十二) 实现Map接口的WeakHashMap

    Java中的集合(十二) 实现Map接口的WeakHashMap 一.WeakHashMap简介 WeakHashMap和HashMap一样,WeakHashMap也是一个哈希表,存储的也是键值对(k ...

  5. JAVA中生成、解析二维码图片的方法

    JAVA中生成.解析二维码的方法并不复杂,使用google的zxing包就可以实现.下面的方法包含了生成二维码.在中间附加logo.添加文字功能,并有解析二维码的方法. 一.下载zxing的架包,并导 ...

  6. vb编程中的选择结构语句的写法

    1996年,Bohra和Jacopin提出了结构化算法的3中种基本结构:顺序结构.选择结构和循环结构 目前已经得到证明,无论多么复杂的程序,都是由上面的3种基本结构中的一种或者多种的组合构成 在此笔者 ...

  7. Java中JVM内存结构

    Java中JVM内存结构 线程共享区 方法区: 又名静态成员区域,包含整个程序的 class.static 成员等,类本身的字节码是静态的:它会被所有的线程共享和是全区级别的: 属于共享内存区域,存储 ...

  8. Java中的集合(二)单列集合顶层接口------Collection接口

    Java中的集合(二)单列集合顶层接口------Collection接口 Collection是一个高度封装的集合接口,继承自Iterable接口,它提供了所有集合要实现的默认方法.由于Iterab ...

  9. JAVA的选择结构(二)

    1.switch选择结构:                        语法:                            switch (key) {                   ...

随机推荐

  1. CTF入门学习4->前端HTML基础

    Web安全基础 02 前端开发-HTML基础 浏览器对于上网者来说是一种直观.可视化的呈现.服务器发送数据到客户端,客户端需要处理这些数据,互联网就造就了这种数据语言--HTML. 02-00 概述 ...

  2. Dapr初体验之服务调用

    初次理解服务调用 在微服务中,有一个难点就是:如果你想使用各个服务组件,你就得知道不同服务的地址和端口,也就是服务发现. 在传统应用我们是怎么做的?就是在web项目里配置上api地址,如下: 在一个w ...

  3. NLP 开源形近字算法补完计划(完结篇)

    前言 所有的故事都有开始,也终将结束. 本文将作为 NLP 汉字相似度的完结篇,为该系列画上一个句号. 起-NLP 中文形近字相似度计算思路 承-中文形近字相似度算法实现,为汉字 NLP 尽一点绵薄之 ...

  4. 【JavaSE】JDK配置

    Java开发环境配置 2020-09-10  08:32:20  by冲冲 1. Windows7安装JDK 1.1 下载JDK ① 下载地址:http://www.oracle.com/techne ...

  5. k8s statefulset controller源码分析

    statefulset controller分析 statefulset简介 statefulset是Kubernetes提供的管理有状态应用的对象,而deployment用于管理无状态应用. 有状态 ...

  6. 水平梯度在sigma坐标对应形式

    sigma 坐标变换 一般 \(\sigma\) 坐标转换方程为 \[\sigma = \frac{z-\eta}{D} = \frac{z-\eta}{H+\eta} \] 转换后水深 z 范围由原 ...

  7. 【GS文献】全基因组选择模型研究进展及展望

    目录 1. GS概况 2. GS模型 1)直接法 GBLUP 直接法的模型改进 ①单随机效应 ②多随机效应 2)间接法 间接法模型 基于间接法的模型改进 3. GS模型比较 模型比较结论 4.问题及展 ...

  8. go变量、类的概念以及类的使用方式,嵌套结构体

    go变量.类的概念以及类的使用方式,嵌套结构体 Go变量 go使用var声明变量,当声明变量时,这个变量对应的值总是会被初始化.这个值要么用指定的值初始化,要么用零值(即变 量类型的默认值)做初始化. ...

  9. mingling

    mysql> USE mon Reading table information for completion of table and column names You can turn of ...

  10. python包之drmaa:集群任务管理

    目录 1. drmaa简介 2. 安装和配置 3. 示例 3.1 开始和终止会话 3.2 运行工作 3.3 等待工作 3.4 控制工作 3.5 查询工作状态 4. 应用 4.1 写一个简单应用 4.2 ...