我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何分析Java的选择语句

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何分析Java的选择语句

这篇文章将为大家详细讲解有关如何分析Java的选择语句,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

编程语言使用控制(control )语句来产生执行流,从而完成程序状态的改变,如程序顺序执行和分支执行。Java 的程序控制语句分为以下几类:选择,重复和跳转。根据表达式结果或变量状态选择(Selection )语句来使你的程序选择不同的执行路径。重复(Iteration)语句使程序能够重复执行一个或一个以上语句(也就是说,重复语句形成循环)。跳转(Jump )语句允许你的程序以非线性的方式执行。下面将分析Java 的所有控制语句。

如果你熟悉C/C++ ,那么掌握Java 的控制语句将很容易。事实上,Java 的控制语句与C/C++ 中的语句几乎完全相同。当然它们还是有一些差别的——尤其是break语句与continue 语句。
Java 支持两种选择语句:if语句和switch语句。这些语句允许你只有在程序运行时才能知道其状态的情况下,控制程序的执行过程。如果你没有C/C++ 的编程背景,你将会为这两个语句的强大功能和灵活性而感到吃惊。

1 if语句
if语句曾在第2章中介绍过,我们将在这里对它进行详细讨论。if语句是Java 中的条件分支语句。它能将程序的执行路径分为两条。if语句的完整格式如下:

if (condition) statement1;
else statement2;

其中,if和else的对象都是单个语句(statement ),也可以是程序块。条件condition 可以是任何返回布尔值的表达式。else子句是可选的。

if语句的执行过程如下:如果条件为真,就执行if的对象(statement1 );否则,执行else 的对象(statement2 )。任何时候两条语句都不可能同时执行。考虑下面的例子:

int a,b; // ...if(a < b) a = 0;else b = 0;

本例中,如果a小于b,那么a被赋值为0;否则,b被赋值为0。任何情况下都不可能使a 和b都被赋值为0。

通常,用于控制if语句的表达式都包含关系运算符。当然,这在技术上并不是必要的。仅用一个布尔值来控制if语句也是可以的,如下面的程序段:

boolean dataAvailable;
// ...
if (dataAvailable)
ProcessData();
else
waitForMoreData();

记住,直接跟在if 或else语句后的语句只能有一句。如果你想包含更多的语句,你需要建一个程序块,如下面的例子:

int bytesAvailable;
// ...
if (bytesAvailable > 0) {

ProcessData();bytesAvailable -= n;} elsewaitForMoreData();

这里,如果变量bytesAvailable 大于0,则if块内的所有语句都会执行。

一些程序员觉得在使用if语句时在其后跟一个大括号是很方便的,甚至在只有一条语句的时侯也使用大括号。这使得在日后添加别的语句变得容易,并且你也不必担心忘记括号。事实上,当需要定义块时而未对其进行定义是一个导致错误的普遍原因。例如,考虑下面的程序段:

int bytesAvailable;
// ...
if (bytesAvailable > 0) {

ProcessData();bytesAvailable -= n;

} else
waitForMoreData();
bytesAvailable = n;

由于编排的原因,看起来似乎bytesAvailable = n 语句应该在else子句中执行。然而,当你调用时,空白对Java 无关紧要,编译器无法知道你的意图。这段程序会通过编译,但运用时会出错。上述例子应修改如下:

int bytesAvailable;
// ...
if (bytesAvailable > 0) {

ProcessData();
bytesAvailable -= n;

} else {
waitForMoreData();
bytesAvailable = n;

}

嵌套if 语句

嵌套(nested)if语句是指该if语句为另一个if或者else 语句的对象。在编程时经常要用到嵌套if语句。当你使用嵌套if语句时,需记住的要点就是:一个else语句总是对应着和它在同一个块中的最近的if语句,而且该if语句没有与其他else语句相关联。下面是一个例子:
if(i == 10) {if(j < 20) a = b;if(k > 100) c = d; // this if iselse a = c; // associated with this else

}
else a = d; // this else refers to if(i == 10)

如注释所示,最后一个else语句没有与if(j<20 )相对应,因为它们不在同一个块(尽管if(j <20 i="=10" k="">100 ),因为它是同一个块中最近的if语句。

if-else-if 阶梯

基于嵌套if语句的通用编程结构被称为 if-else-if 阶梯。它的语法如下:

if(condition) statement; else if(condition) statement; else if(condition)

statement;
.
.
.
else

statement;

条件表达式从上到下被求值。一旦找到为真的条件,就执行与它关联的语句,该阶梯的其他部分就被忽略了。如果所有的条件都不为真,则执行最后的else语句。最后的else语句经常被作为默认的条件,即如果所有其他条件测试失败,就执行最后的else语句。如果没有最后的else语句,而且所有其他的条件都失败,那程序就不做任何动作。

下面的程序通过使用if-else-if 阶梯来确定某个月是什么季节。

// Demonstrate if-else-if statements.
class IfElse {

public static void main(String args[]) {
int month = 4; // April
String season;

if(month == 12 || month == 1 || month == 2)
season = "Winter";
else if(month == 3 || month == 4 || month == 5)
season = "Spring";
else if(month == 6 || month == 7 || month == 8)
season = "Summer";
else if(month == 9 || month == 10 || month == 11)
season = "Autumn";
else
season = "Bogus Month";

System.out.println("April is in the " + season + ".");
}
}
该程序产生如下输出:

April is in the Spring.

在往下继续讲之前,你可能想要先试验这个程序。你将看到,不管你给month 什么值,该阶梯中有而且只有一个语句执行。

2 switch 语句
switch语句是Java 的多路分支语句。它提供了一种基于一个表达式的值来使程序执行不同部分的简单方法。因此,它提供了一个比一系列if-else-if 语句更好的选择。switch 语句的通用形式如下:

switch (expression) {

case value1:

// statement sequence

break;

case value2:

// statement sequence

break;

.

.

.

case valueN:

// statement sequence

break;

default:

// default statement sequence

}

表达式expression 必须为byte,short,int 或char类型。每个case语句后的值value 必须是与表达式类型兼容的特定的一个常量(它必须为一个常量,而不是变量)。重复的case值是不允许的。

switch 语句的执行过程如下:表达式的值与每个case语句中的常量作比较。如果发现了一个与之相匹配的,则执行该case语句后的代码。如果没有一个case常量与表达式的值相匹配,则执行default 语句。当然,default 语句是可选的。如果没有相匹配的case 语句,也没有default 语句,则什么也不执行。

在case语句序列中的break 语句将引起程序流从整个switch 语句退出。当遇到一个break 语句时,程序将从整个switch 语句后的第一行代码开始继续执行。这有一种“跳出” switch 语句的效果。

下面是一个使用switch语句的简单例子:

// A simple example of the switch.

class SampleSwitch {

public static void main(String args[]) {

for(int i=0; i<6; i++)

switch(i) {

case 0:

System.out.println("i is zero.");

break;
case 1:
System.out.println("i is one.");
break;

case 2:
System.out.println("i is two.");
break;

case 3:
System.out.println("i is three.");
break;

default:
System.out.println("i is greater than 3.");
}
}
}

该程序的输出如下:

i is zero.
i is one.
i is two.
i is three.
i is greater than 3.
i is greater than 3.

从中可以看出,每一次循环,与i值相配的case常量后的相关语句就被执行。其他语句则被忽略。当i大于3时,没有可以匹配的case语句,因此执行 default 语句。break语句是可选的。如果你省略了break 语句,程序将继续执行下一个case语句。有时需要在多个case语句之间没有break 语句。例如下面的程序:

// In a switch, break statements are optional.
class MissingBreak {
public static void main(String args[]) {
for(int i=0; i<12; i++)

switch(i) {
case 0:
case 1:
case 2:
case 3:
case 4:

System.out.println("i is less than 5");

break;
case 5:
case 6:
case 7:
case 8:
case 9:

System.out.println("i is less than 10");
break;
default:
System.out.println("i is 10 or more");
}
}
}
该程序产生的输出如下:

i is less than 5
i is less than 5
i is less than 5
i is less than 5
i is less than 5
i is less than 10
i is less than 10
i is less than 10
i is less than 10
i is less than 10
i is 10 or more
i is 10 or more

正如该程序所演示的那样,如果没有break语句,程序将继续执行下面的每一个case语

句,直到遇到break 语句(或switch语句的末尾)。当然该例子是为了示例而人为构造的,省略break语句在真实的程序中有许多实际的应

用。为了说明它更现实的用法,让我们考虑下例对以前显示季节例子的重写。这个重写的

版本使用switch语句来使程序的执行更高效。

// An improved version of the season program.
class Switch {

public static void main(String args[]) {
int month = 4;
String season;
switch (month) {

case 12:
case 1:
case 2:

season = "Winter";

break;
case 3:
case 4:
case 5:

season = "Spring";

break;
case 6:
case 7:
case 8:

season = "Summer";

break;
case 9:
case 10:
case 11:

season = "Autumn";
break;
default:

season = "Bogus Month";}System.out.println("April is in the " + season + ".");

}
}
嵌套switch 语句

可以将一个switch语句作为一个外部switch语句的语句序列的一部分,这称为嵌套switch语句。因为一个switch语句定义了自己的块,外部switch语句和内部switch语句的case 常量不会产生冲突。例如,下面的程序段是完全正确的:

switch(count) {

case 1:

switch(target) { // nested switch

case 0:

System.out.println("target is zero");

break;

case 1: // no conflicts with outer switch

System.out.println("target is one");

break; }

break;

case 2: // ...

本例中,内部switch语句中的 case 1 :语句与外部switch语句中的case 1:语句不冲突。变量count仅与外层的case语句相比较。如果变量count 为1,则变量target 与内层的case语句相比较。

概括起来说,switch语句有3个重要的特性需注意:

·
switch语句不同于if语句的是switch语句仅能测试相等的情况,而if语句可计算任何类型的布尔表达式。也就是switch语句只能寻找case常量间某个值与表达式的值相匹配。
·
在同一个switch语句中没有两个相同的case常量。当然,外部switch语句中的case常量可以和内部switch语句中的case常量相同。
·
switch语句通常比一系列嵌套if语句更有效。
最后一点尤其有趣,因为它使我们知道Java 编译器如何工作。当编译一个switch语句时,Java 编译器将检查每个case常量并且创造一个“跳转表”,这个表将用来在表达式值的基础上选择执行路径。因此,如果你需要在一组值中做出选择,switch 语句将比与之等效的if-else 语句快得多。编译器可以这样做是因为它知道case常量都是同类型的,所要做的只是将它与switch表达式相比较看是否相等。对于一系列的if表达式,编译器就无此功能。

关于如何分析Java的选择语句就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何分析Java的选择语句

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何分析Java的选择语句

这篇文章将为大家详细讲解有关如何分析Java的选择语句,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。编程语言使用控制(control )语句来产生执行流,从而完成程序状态的改变,如程序顺序执
2023-06-03

Java流程控制语句之If选择结构的示例分析

这篇文章主要介绍Java流程控制语句之If选择结构的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、选择结构大纲if单选择结构if双选择结构if多选择结构嵌套的if结构switch多选择结构二、if单选择结
2023-06-15

如何进行Java多线程语句具体分类的分析

如何进行Java多线程语句具体分类的分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在Java多线程语句中有很多的小的语句需要我们特殊的注意。wait(),notify(
2023-06-17

如何分析Linux shell中的case语句

这篇文章跟大家分析一下“如何分析Linux shell中的case语句”。内容详细易懂,对“如何分析Linux shell中的case语句”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入
2023-06-28

怎么分析C语言的选择结构

怎么分析C语言的选择结构,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、if-else语句1.单选择单选择通过if语句就可以实现,if语句的语法及执行流程如下:if(表达式)
2023-06-26

Go语言优势分析:为何选择Go编程

Go语言优势分析:为何选择Go编程,需要具体代码示例随着互联网技术的不断发展,编程语言也日新月异,各种语言层出不穷。在诸多编程语言中,Go语言作为一种开源、跨平台的静态编译型语言备受关注。它简洁、高效、易学易用,适合开发各类应用程序。那么
Go语言优势分析:为何选择Go编程
2024-03-05

Java不同版本的Switch语句实例分析

这篇文章主要讲解了“Java不同版本的Switch语句实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java不同版本的Switch语句实例分析”吧!旧的Java Switch语句sw
2023-07-02

如何分析购物中心的无线AP选择

这篇文章主要为大家分析了如何分析购物中心的无线AP选择的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“如何分析购物中心的无线AP选择”的知识吧。
2023-06-04

MongoDB和SQL语句的对比及如何选择合适的数据库?

在当今的软件开发领域中,选择合适的数据库对项目的成功至关重要。在选择数据库的时候,开发者们通常会面临两个主要的选择:关系数据库和非关系数据库。MongoDB和SQL是这两种类型数据库的代表,本文将对它们进行一个详细的对比,并提供一些关于如何
MongoDB和SQL语句的对比及如何选择合适的数据库?
2023-12-17

如何在java中使用if分支语句

如何在java中使用if分支语句?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了
2023-06-14

新手应该如何选择c语言和java

这篇文章主要介绍新手应该如何选择c语言和java,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言可以以简易的方式编译、处理低级
2023-06-14

java中的语句如何搜索

在Java中,可以使用各种搜索算法来搜索语句。以下是一些常见的搜索算法:线性搜索:逐个检查每个语句,直到找到目标语句或搜索完所有语句。这是最简单的搜索算法,但效率较低。String[] statements = {"statement1",
java中的语句如何搜索
2024-02-29

oracle的分页语句如何写

在Oracle中,可以使用Rownum进行分页,以下是一个示例分页查询语句:```sqlSELECT *FROM (SELECT t.*, ROWNUM AS rnFROM (-- 在此处编写原始查询语句SELECT column1, co
2023-08-23

Java流程控制之选择结构的示例分析

这篇文章主要介绍Java流程控制之选择结构的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!布尔表达式:布尔表达式(Boolean expression)是一段代码声明,它最终只有true(真)和false(假
2023-06-22

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录