Java基础:Java流程控制 您所在的位置:网站首页 java流程控制结构不包括 Java基础:Java流程控制

Java基础:Java流程控制

2024-04-24 17:02| 来源: 网络整理| 查看: 265

块(即复合语句)是指由一对大括号括起来的若干条简单的 Java 语句。块确定了变量的作用域。一个块可以嵌套在另一个块中。但是,不能在嵌套的两个块中声明同名的变量。使用块(有时称为复合语句)可以在Java程序结构中原本只能放置一条(简单)语句的地方放置多条语句。 ~ 本篇主要记录内容包括:块作用域、分支结构、循环语句与、中断控制流程语句

上一篇内容:Java基础:Java数字类型下一篇内容:Java基础:Java类与对象更多知识学习:全网最全的 Java 技术栈内容梳理(持续更新中)文章目录代码语言:txt复制- [一、Java 代码块](https://cloud.tencent.com/developer) - [1、块作用域](https://cloud.tencent.com/developer) - [2、代码块分类](https://cloud.tencent.com/developer) - [3、构造方法与代码块执行顺序](https://cloud.tencent.com/developer) - [二、Java 分支结构](https://cloud.tencent.com/developer) - [1、条件语句](https://cloud.tencent.com/developer) - [2、多重选择:switch语句](https://cloud.tencent.com/developer) - [3、三元运算符](https://cloud.tencent.com/developer) - [三、Java 循环语句](https://cloud.tencent.com/developer) - [1、while 循环语句与 do-while 语句](https://cloud.tencent.com/developer) - [2、for 循环语句](https://cloud.tencent.com/developer) - [3、foreach 循环语句](https://cloud.tencent.com/developer) - [四、Java 中断控制流程语句](https://cloud.tencent.com/developer)一、Java 代码块1、块作用域

块(即复合语句)是指由一对大括号括起来的若干条简单的 Java 语句。块确定了变量的作用域。一个块可以嵌套在另一个块中。但是,不能在嵌套的两个块中声明同名的变量。

Ps:在 C++ 中,可以在嵌套的块中重定义一个变量。在内层定义的变量会覆盖在外层定义的变量。这样,有可能会导致程序设计错误,因此在 Java 中不允许这样做。

有名字的代码块—— if-else 代码块,for 循环代码块,main 方法代码块。代码块也叫体,比如 for 循环体,main 方法体。

2、代码块分类

根据代码块位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块和同步代码块:

局部代码块:类中方法的方法体,局部代码块是定义在方法或语句中,方法和类都是以代码块的方式划定边界的;构造代码块:定义在类中成员位置,方法之外的代码块,构造代码块会在创建对象时被调用,每次创建时都会被调用,优先于类构造函数执行。特点:①优先于构造方法执行,构造代码块用于执行所有对象均需要的初始化动作;②每创建一个对象均会执行一次构造代码块;静态代码块:用static{}包裹起来的代码片段,只会执行一次,静态代码块优先于构造块执行。特点:①静态代码块是定义在成员位置,方法之外,使用static修饰的代码块;②它优先于主方法执行、优先于构造代码块执行,在类加载时执行;③该类不管创建多少对象,静态代码块只执行一次;④可用于给静态变量赋值,用来给类进行初始化;同步代码块:当线程开始执行同步代码块前,必须先获得对同步代码块的锁定,并且任何时刻只能有一个线程可以获得对同步监视器的锁定,当同步代码块执行完成后,该线程会释放对该同步监视器的锁定。

特点:①使用synchronized(){}包裹起来的代码块;②在多线程环境下,对共享数据的读写操作是需要互斥进行的,否则会导致数据的不一致性;③同步代码块需要写在方法中。

3、构造方法与代码块执行顺序

B构造函数、父类B静态代码块、父类B非静态代码块、子类A构造函数、子类A静态代码块、子类A非静态代码块执行的先后顺序是:

父类B静态代码块>子类A静态代码块>父类B非静态代码块>父类B构造函数>子类A非静态代码块>子类A构造函数

二、Java 分支结构1、条件语句

在 Java 中,条件语句的格式为: if(condition) statement,这里的条件必须用括号括起来。

与绝大多数程序设计语言一样,Java常常希望在某个条件为真时执行多条语句。在这种情况下,使用块语句,格式为

代码语言:javascript复制{ statement1 statement2 ...... }

Ps:使用块(有时称为复合语句)可以在Java程序结构中原本只能放置一条(简单)语句的地方放置多条语句。

其中 else 部分是可选的。else 子句与最邻近的if构成一组。因此,在语句中 else 与第 2 个 if 配对。当然,用一对括号将会使这段代码更加清晰:重复地交替出现 if...else if...是一种很常见的情况。

2、多重选择:switch语句

在处理多个选项时,使用 if/else 结构显得有些笨拙。Java 有一个与 C/C++ 完全一样的 switch 语句。

switch 语句将从与选项值相匹配的 case 标签处开始执行直到遇到 break 语句,或者执行到 switch 语句的结束处为止。如果没有相匹配的 case 标签,而有 default 子句,就执行这个子句。

Ps:有可能触发多个 case 分支。如果在 case 分支语句的末尾没有 break 语句,那么就会接着执行下一个 case 分支语句。这种情况相当危险,常常会引发错误。

case 标签可以是:① 类型为char、byte、short 或 int 的常量表达式。②枚举常量。③从 Java SE 7 开始,case 标签还可以是字符串字面量。

3、三元运算符

元运算符也叫三目运算符 ,即由三部分组成,格式:关系表达式 ? 表达式1:表达式2;

先执行关系表达式,看其结果是 true 还是 false:如果是 true,则执行表达式 1;如果是false,则执行表达式 2。

三、Java 循环语句1、while 循环语句与 do-while 语句

当条件为 true 时,while 循环执行一条语句(也可以是一个语句块)。一般格式为:while( condition ) statetion,如果开始循环条件的值就为 flase,则 while 循环体一次也不执行。while循环语句首先检测循环条件,因此,循环体中的代码有可能不被执行。如果希望将语句至少执行一遍,则应该把检测条件放在最后面,这就是 do-while 语句,它的格式大致为:do statement while (condition );。

2、for 循环语句

for 循环语句是支持迭代的一种通用结构,利用每次迭代之后更新的计数器或类似的变量来控制迭代次数。

for 语句的第 1 部分通常用于对计数器初始化;第 2 部分给出每次新一轮循环执行前要检测的循环条件;第 3 部分指示如何更新计数器。与 C++ 一样,尽管 Java 允许在 for 循环的各个部分放置任何表达式,但有一条不成文的规则:for 语句的 3 个部分应该对同一个计数器变量进行初始化、检测和更新。若不遵守这一规则,编写的循环常常晦涩难懂。

3、foreach 循环语句

Java 有一种功能很强的循环结构,可以用来依次处理数组中的每个元素(其他类型的元素集合亦可)而不必为指定下标值而分心,语句格式为:for(variable:collection) statement。

for each 循环语句相较于传统的 for 循环更加简介、更不易出错(不必为下标的起始值和终止值而操心)

Ps:要想获得数组中的元素个数,可以使用 array.length。

Ps:for each 循环语句的循环变量将会遍历数组中的每个元素,而不需要使用下标值。

四、Java 中断控制流程语句

break 关键字:break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。 break 跳出最里层的循环,并且继续执行该循环下面的语句。

continue 关键字: continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。①在 for 循环中, continue 语句使程序立即跳转到更新语句。②在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。

跳出控制语句的区别:

break :结束当前整个循环,执行当前循环下边的语句;continue :结束本次循环,继续进行下次循环;return : 用于结束一个方法,返回给上层调用者,如果位于main方法内,相当于结束了程序,return 也可以用于结束循环,因为 return 用于结束一个方法,如果方法中有循环的话,不管 return 嵌套于多少层循环之内,循环都结束不会再执行循环后面的语句。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有