热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JavaSE—三种控制语句

Java程序通过控制语句来执行程序流,从而完成一定的任务。程序流时通过若干条语句组成的,语句可以是单一的一条,如ca+b,也可以是用大括号{}括起来的一个复合语句。Java中的控制

Java程序通过控制语句来执行程序流,从而完成一定的任务。程序流时通过若干条语句组成的,语句可以是单一的一条,如c=a+b,也可以是用大括号{}括起来的一个复合语句。Java中的控制语句有三类



  • 分支结构:if-else,switch

  • 迭代结构:while,do-while,for

  • 转移语句:break,continue,return

一、分支结构

分支结构是根据假设的条件是否成立,来决定执行什么语句。它的作用是让程序更有选择性。

1、if-else语句

语法如下:

if(condition)
statement1;
[
else statement2;]

语法解释:

condition是布尔表达式,结果为true或false。

statement1和statement2都表示语句块。当condition为true时,执行if后面的语句块;当condition为false时,执行else后面的语句块。

流程图如下:

分支判断逻辑也有较为复杂的,在一个布尔表达式不能完全表示,这时可以采用嵌套分支语句实现,基于嵌套if语句的序列一般结构为if-else-if阶梯

语法结构如下:

if(condition){
statement1;
}
else if(condition){
statement2;
}
else if(condition){
statement3;

}
else{
statement;
}

2、switch-case语句

一个switch语句有一个控制表达式和一个由case标记表述的语句块组成。

语法结构如下:

switch(expression){
case value1:statement1;
break;
case value2:statement2;
break;

case valueN:sstatementN;
break;
[
default:defaultStatement;]
}

语法解释:

switch语句把表达式返回值依次与每个case子句中的值比较。如果遇到匹配的值,则执行该case后面的语句块。

表达式expression的返回值类型必须是int、byte、char、short这几种类型之一(JDK7.0及以后的版本,还可以是String类型)

case子句中的值valueN必须是常量,并且与表达式expression的返回值类型一致,而且所有case子句中的值应是不同的

default子句表示case子句中没有声明的其他情况,是可选的

break语句用来在执行完一个case分支后,是程序跳出switch语句,即终止switch语句的执行,而在一些特殊情况下,多个不同的case值要执行一组相同的操作,这时不用break;

二、迭代结构

迭代结构的作用是反复执行一段代码,直到满足终止循环的条件为止。

1、while语句

语法结构如下:

while(condition){
statement;
}

语法解释:

while语句计算表达式condition,如果表达式为true,则执行while循环体内的语句,若表达式为false ,则结束循环体,执行循环体后的语句。

流程图如下:

2、do-while语句

用于循环至少执行一次的情形

语句结构如下:

do{
statement;
}
while(condition);

语法解释:

首先,do-while语句执行一次do语句,然后计算表达式condition,如果表达式为true,则继续执行循环体内的语句;若表达式为false,则结束循环。

流程图如下:

3、for语句

语句结构如下:

for(initialization;condition;update){
statements;
}

语法解释:

for语句执行时,首先执行初始化操作(condition),然后判断终止条件表达式(condition)是否满足,如果终止条件满足,则退出循环,否则执行循环体中的语句,接着执行迭代部分(update),完成一次循环。下次循环从判断终止条件开始,根据判断结果进行相应操作。注意,初始化操作(initialization)只在第一次循环时执行。

初始化、终止以及迭代部分都可以为空语句(分号不能省),三者均为空的时候,就相当于一个无限循环。

在初始化部分和迭代部分可以使用逗号语句来进行多个操作。

流程图如下:

三、转移语句

1、break语句

break语句主要有三种作用



  • 在switch语句中,用于终止case语句序列,跳出switch语句

  • 在循环结构中,用于终止循环语句序列,跳出循环结构

  • 与标签语句配合使用从内层循环或内层程序块中退出

当break语句用于for、while、do-while循环语句中时,可使程序终止循环而执行循环后面的语句。通常break语句总是与if语句连在一起,即满足条件时便跳出循环。以for语句为例说明,形式如下:

for(表达式1,表达式2,表达式3){

if(表达式4)
break

}

意思就是,在执行循环体过程中,若if语句中的表达式成立,则终止循环,去执行循环语句之后的其他语句。

2、continue语句

用于for、while、do-while等循环体中时,常与if条件语句一起使用,用来加速循环,即满足条件时,跳过本次循环剩余的语句,强行检测判断条件以决定是否进行下一次循环。以continue语句用于for语句为例,形式如下:

for(表达式1,表达式2,表达式3){

if(表达式4)continue

}

意思就是,在执行循环体过程中,若if语句中的表达式成立,则终止当前迭代,去执行下一次迭代。

3、return语句

return语句通常用在一个方法的最后,以退出当前方法。其主要有两种格式:



  • return 表达式

  • return

当案由return语句的方法被调用时,执行return语句将从当前方法中退出,返回到调用该方法的语句处。如果执行return语句的第一种格式,将同时返回表达式执行结果;第二种格式执行后不返回任何值,用于方法声明时明确返回类型为void的方法中。

return语句使用说明



  • 在一个方法中,允许有多个return语句,但每次调用方法时只可能有一个return语句被执行,因此方法的执行结果是唯一的

  • return语句返回值的类型和方法声明中定义的类型应保持一致。当两者不一致时,以方法定义的类型为准,自动进行类型转换,如果无法强制转换则将出错

  • 如果方法定义的类型为void,则在方法中可省略return语句



推荐阅读
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • Java SE从入门到放弃(三)的逻辑运算符详解
    本文详细介绍了Java SE中的逻辑运算符,包括逻辑运算符的操作和运算结果,以及与运算符的不同之处。通过代码演示,展示了逻辑运算符的使用方法和注意事项。文章以Java SE从入门到放弃(三)为背景,对逻辑运算符进行了深入的解析。 ... [详细]
  • ***byte(字节)根据长度转成kb(千字节)和mb(兆字节)**parambytes*return*publicstaticStringbytes2kb(longbytes){ ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 纠正网上的错误:自定义一个类叫java.lang.System/String的方法
    本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ... [详细]
  • 本文整理了Java面试中常见的问题及相关概念的解析,包括HashMap中为什么重写equals还要重写hashcode、map的分类和常见情况、final关键字的用法、Synchronized和lock的区别、volatile的介绍、Syncronized锁的作用、构造函数和构造函数重载的概念、方法覆盖和方法重载的区别、反射获取和设置对象私有字段的值的方法、通过反射创建对象的方式以及内部类的详解。 ... [详细]
author-avatar
我的天空有点蓝2012_916
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有