第四章

选择结构(二)

学习本章会用到的单词:

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选择结构来解决。

转载于:https://www.cnblogs.com/mrgaoyuan/p/7650718.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253187.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tensorflow的一些函数

1.tf.constant(value,dtypeNone,shapeNone,nameConst) 注意这个函数创造的是一个常数tensor,而不是一个具体的常数 value:即可以是list,也可以是value dtype:对应生成的tensor里的元素的类型 # Constant 1-D Tensor populated with value list.tensor t…

生活小常识

1、面试时说三个月试用期可以缩短的不要相信,可以谈谈别的条件 2、在饭店吃饭满几桌送下次吃饭的卷的不要信。可能你会没时间,或饭店没地方。(谈谈当时可以送的其他优惠。或者根据自己的需求定桌数,不要被他诱惑凑桌)转…

IP、TCP、UDP数据包长度问题

IP数据包长度问题总结 首先要看TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层。   其中以太网(Ethernet)的数据帧在链路层    IP包在网络层   TCP或UDP包在传输层    TCP或UDP中的…

RK瑞芯微WIFI模组2020最新支持列表,放心使用!

如下所示为RK瑞芯微2020最新支持的WIFIBT模组列表,请参考! 标题希望对选型有所帮助,避免踩坑,坑驱动工程师! 有事要搞,请私聊!

数据类型进阶

----------siwuxie095 1、整数类型 如果去掉注释,报错:Type mismatch: cannot convert from into byte 即 不能把 int 类型转换成 byte 类型 如果选择 Add cast to byte: 即 把 b13 的结果(默认为 int 类型)强制转换成…

区块链教程Fabric1.0源代码分析流言算法Gossip服务端二

区块链教程Fabric1.0源代码分析流言算法Gossip服务端二 Fabric 1.0源代码笔记 之 gossip(流言算法) #GossipServer(Gossip服务端) 5.2、commImpl结构体方法 //conn.serviceConnection(),启动连接服务 func (c *commImp…

一段H264数据的分析

目录(?)[-] 分析00 00 00 01 67 42 00 1E 99 A0 B1 31 00 00 00 01分析00 00 00 01 68 CE 38 80 00 00 00 01 分析00 00 00 01 67 42 00 1E 99 A0 B1 31 00 00 00 01 H264的数据流分为两种,一种是NAL UNIT stream(RTP),一种是 bits stream…

海华模组:WIFI、BT、SoC模组列表

各种模块广泛应用于网络摄像头、智能机器人、儿童故事机、词典笔、智能音箱、智能家电等需要实现无线联网设备的消费类电子产品。 模块化有很大的有点:集成设计、减少调试工作,避开开发盲区、加速将产品推向市场! 下面介绍下海华各类通讯模…

JAVA-初步认识-第七章-构造函数和一般函数的区别

一. 构造函数是对象一创建,就被调用了。(调用这个词很特殊,是涉及到实体时,才会有调用的过程) 还有一点想说的是,构造函数的声明应该是固定的,不然没法随着对象的创建一起执行,必须是类名括号的形式。 二. …

深入理解哈希表

转自:https://bestswifter.com/hashtable/ 这篇文章由一个简单的问题引出: 有两个字典,分别存有 100 条数据和 10000 条数据,如果用一个不存在的 key 去查找数据,在哪个字典中速度更快? 有些计算机常识的读者都会立刻回…

Linux服务器ftp+httpd部署

一、ftp安装 1、安装vsftpd 命令:yum -y install vsftpd 2、修改ftp配置文件 命令:vim /etc/vsftpd/vsftpd.conf 3、按i进入insert模式后,按以下要求修改 anonymous_enableYES 改为anonymous_enableNO chroot_local_userYES #去掉前面的注释 …

高清网络摄像机主流芯片方案之安霸、TI和海思对比

高清网络视频监控发展到今天,市场也开始进入真正的高清时代,诸多有实力的高清摄像机厂家的产品线也逐渐完善起来,高清网络视频监控的配套产品有更加丰富和成熟。与此同时困扰很多人的高清网络摄像机与后端平台或者与后端NVR互联互通的问题也在…

ios审核4.3被拒,快速通过IOS4.3问题

最近有许多开发者遇到了因为审核条款 4.3(后文统一简称 4.3)审核条款 4.3(后文统一简称 4.3),这种情况 常见于大家上传重复应用的时候,因为App Store 已经有了很多相似的应用 而被打回,今天我们…

正基模组:WIFI/BT/GPS/FM模组列表

各种模块广泛应用于网络摄像头、智能机器人、儿童故事机、词典笔、智能音箱、智能家电等需要实现无线联网设备的消费类电子产品。 模组由于其特性,给终端硬件开发带来巨大的便利性和实用性,具体小结如下: Feature特点:1. 模块均采用邮票孔形…

计算机网络基础教程---强烈推荐!来自锐捷官方网站

一、计算机网络基础教程 说明:每个教程的时间大约为6分钟,以问题为导向,以项目为驱动。1、第一章 IPV4地址介绍 http://www.ruijie.com.cn/fw/zxpx/4092、第二章 TCP/IP协议簇介绍 http://www.ruijie.com.cn/fw/zxpx/4103、第三章 ARP协议工作…

杨幂掐点祝福唐嫣,打破不和传言,情感营销还能这么玩?

发现今天的蜂蜜泡水特别地甜,舍友说,同样地蜂蜜同样多的水泡出来的水有什么不一样,肯定是你心情变好了。说得好像也有道理,想想最近这么多甜蜜的事,一开始是颖宝结婚,不久唐嫣和罗晋也宣布结婚,…

RTP/RTCP协议介绍

1流媒体协议 当前在Internet上传输音频和视频等信息主要有两种方式:下载和流式传输。 下载情况下,用户需要先下载整个媒体文件到本地,然后才能播放媒体文件。流式传输是指传输之前首先对多媒体进行预处理(降低质量和高效压缩),然后…

推荐一款软件(作业)

在过去,每当我遇见不认识的英文单词时我的解决方法是:查阅英汉词典,后来在我拥有手机之后,我的解决方法是:上网百度,而现在我的解决方法是:“有道翻译官”。是的,我要介绍的这款软件便是“有道翻…

网易有道最新力作 有道词典笔3 结构拆解

2020年12月1日,有道品牌推出了一款硬件新品,名叫有道词典笔3。 网易有道于2019年8月推出可以“一扫查词”的有道词典笔2代,搭载了OCR(光学字符识别)技术的产品,大大改变了传统的学习方式,查词效…

DataGridView动态添加新行的两种方法

简单介绍如何为DataGridView控件动态添加新行的两种方 法: 方法一: int indexthis.dataGridView1.Rows.Add();this.dataGridView1.Rows[index].Cells[0].Value "1"; this.dataGridView1.Rows[index].Cells[1].Value "2"; this.dat…