首页 青云排行榜 知识中心 控制台
Java语言 >  Java语言基础 > 

Java 语法基础

Java语言的语法简洁明了,容易掌握,而且还是纯面向对象的编程思想,简单性主要体现在以下几个方面:

1. 语法规则和C++相似,但从某种意义上讲,它是由C和C++演变而来,所以C程序设计人员能很容易的掌握java语言的语法。

2. 对C++来说进行了简化和一定的提高,如:使用接口代替了复杂的多重继承以及取消了指针,还通过实现垃圾自动回收机制,大大简化了程序员的资源释放管理工作。

3. 提供了丰富的类库和API文档,以及第三方开发包工具包,还有大量的基于java的开源项目,帮助程序设计人员参考学习,JDK(java开发工具包)就是开放的源代码之一,读者可以通过分析项目的源代码,来提高自己的编程水平。


1. Java关键字

在Java中,有一些特殊的单词被称为关键字(Keyword)。这些关键字是Java语言保留的,用于执行特定的功能,例如定义类、方法和变量等。

48个关键字:abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while。

2个保留字:goto const

3个特殊直接量:true、false、null

关键字含义:

关键字所属含义
abstract表明类或者成员方法具有抽象属性
assert断言,用来进行程序调试
boolean基本数据类型之一,声明布尔类型的关键字
break提前跳出一个块
byte基本数据类型之一,字节类型
case用在 switch 语句之中,表示其中的一个分支
catch用在异常处理中,用来捕捉异常
char基本数据类型之一,字符类型
class声明一个类
const保留关键字,没有具体含义
continue回到一个块的开始处
default默认,例如,用在 switch 语句中,表明一个默认的分支
do用在 do-while 循环结构中
double基本数据类型之一,双精度浮点数类型
else用在条件语句中,表明当条件不成立时的分支
enum枚举
extends表明一个类型是另一个类型的子类型,表示继承关系,这里常见的类型有类和接口
final表示不可变,最终的,在Java中表示常量
finally用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
float基本数据类型之一,单精度浮点数类型
for一种循环结构的引导词
goto保留关键字,没有具体含义
if条件语句的引导词
implements表明一个类实现了给定的接口
import表明要访问指定的类或包
instanceof用来测试一个对象是否是指定类型的实例对象
int基本数据类型之一,整数类型
interface接口
long基本数据类型之一,长整数类型
native用来声明一个方法是由与计算机相关的语言(如 C/C++语言)实现的
new用来创建新实例对象
package
private一种访问控制方式:私用模式
protected一种访问控制方式:保护模式
public一种访问控制方式:共用模式
return从成员方法中返回数据
short基本数据类型之一,短整数类型
static表明具有静态属性
strictfp用来声明 FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754 算术规范
super表明当前对象的父类型的引用或者父类型的构造方法
switch分支语句结构的引导词
synchronized表明一段代码需要同步执行
this指向当前实例对象的引用
throw抛出一个异常
throws声明在当前定义的成员方法中所有需要抛出的异常
transient声明不用序列化的成员域
try尝试一个可能抛出异常的程序块
void声明当前成员方法没有返回值
volatile表明两个或者多个变量必须同步地发生变化
while用在循环结构中
null引用数据类型默认初始值


2.Java数据类型

Java的数据类型只有两大类:8大基本数据类型与引用数据类型,其中基本数据类型又被称为值类型。


2.1. 基本数据类型

6种数字类型(byte/short/int/long/float/double)、1种字符型(char)、1种布尔型(boolean)

基本类型存储大小初始化默认值取值范围包装类型
byte1字节(8位)0-128~127Byte
short2字节(16位)0-32768~32767Short
int4字节(32位)0-2^31 ~ 2^31 - 1Integer
long8字节(64位)0L。"L"理论上不分大小写,但若写成"l"容易与数字"1"混淆,不容易分辨,所以最好大写。-2^63 ~ 2^63 - 1Long
float4字节(32位)0.0f符合IEEE754标准的浮点数,1.4E-45 ~ 3.4028235E38Float
double8字节(64位)0.0d符合IEEE754标准的浮点数,4.9E-324 ~ 1.7976931348623157E308Double
char2字节(16位)‘\u0000’\u0000 ~ \uffff(十进制等效值为 0~65535,本质也是数值)Character
boolean1字节(8位)/4字节(32位)falsetrue/falseBoolean


2.2. 引用数据类型

类(Class)、接口(Interface)、数组(Array),引用类型参数传递时,以拷贝引用地址的方式传递给接收变量,而非复制整个数据本体。除八大基本数据类型之外的所有数据类型,都为引用数据类型。所有引用数据类型的默认值都为null。


2.3. 包装类

Java代码的基本格式除了以上的基本数据类型和引用数据类型,还有一些其他相关的数据类型,例如字符串类型String、枚举类型Enum,它们都是基于引用数据类型来实现的。包装类为基本数据类型与引用数据类型互相转换、以利用彼此的特性,java为每一种基本数据类型提供了相应的包装类。包装类对基本数据类型进行了封装,提供了丰富的功能,包装类是基本类型的拓展。包装类是引用类型的一种,包装类与基本数据类型一一对应,也有8种,分别为:Byte、Short、Integer、Long、Float、Double、Character、Boolean

2.4. 基本数据类型与引用数据类型区别

  • 存储方式:基本数据类型直接存储值,而引用数据类型存储的是对象的引用(内存地址)
  • 内存分配:基本数据类型在栈上分配内存,引用数据类型在堆上分配内存(具体内容存放在堆中,栈中存放的是其具体内容所在内存的地址)。栈上的分配速度较快,但是内存空间较小,而堆上的分配速度较慢,但可以分配更大的内存空间
  • 默认值:基本数据类型会有默认值,例如int类型的默认值是0,boolean类型的默认值是false。而引用数据类型的默认值是null,表示没有引用指向任何对象
  • 复制操作:基本数据类型进行复制时,会复制该变量的值。而引用数据类型进行复制时,只会复制对象的引用,两个变量指向同一个对象
  • 参数传递:基本数据类型作为方法的参数传递时,传递的是值的副本,不会修改原始值。而引用数据类型作为方法的参数传递时,传递的是对象的引用,可以修改对象的属性或状态
  • 比较操作:基本数据类型使用==进行比较时,比较的是值是否相等。而引用数据类型使用==进行比较时,比较的是引用是否指向同一个对象,如果要比较对象的内容是否相同,需要使用equals()方法


3. Java代码的基本格式

Java代码的基本格式如下:

package 包名;
import package1.[.package2…].类名;
修饰符 class 类名{
  类体;
}


3.1. 类

Java是面向对象的程序设计语言,Java程序由类(class)组成,而类是Java程序的基本单元。声明一个类的一般形式如下:

标识符修饰符 class 类名{
  类体;
}

1.4 main()方法


3.2. main()方法

main()方法是Java程序执行的入口,其语法格式如下:

public static void main (String[] args) {
  方法体;
}


3.3. 方法

方法用于改变对象的属性,或者用于接收来自其他对象的信息以及向其他对象发送消息。它在类中用来描述类的行为,其定义格式如下:

修饰符 返回类型 方法名 (参数类型1 参数名1, …, 参数类型n 参数名n) {
  //方法体;
  return 返回值;
}


3.4. 标识符

标识符是用来表示Java中的包、类、方法、变量、常量等的名称。命名规则如下:

  • 标识符由字母、数字、下划线及美元符号($)组成
  • 标识符首字母不能使用数字
  • 标识符不能是关键字,如class
  • 标识符区分大小写


3.5. 修饰符

修饰符指定数据、方法及类的属性的可见度,如public、protected、private等。被它们修饰的数据、方法或类的可见度是不同的

限定词同一类中同一个包中不同包中的子类不同包中的非子类
private
无限定词
protected
public


3.6. 程序块

程序块是指一对大括号({})之间的内容,且程序中的大括号必须是成对出现的


3.7. 语句

Java程序中语句使用“;”作为语句结尾,而“;”也标志着一个语句的结束


3.8. Java代码的注释

单行注释

//注释内容

多行注释

/*
注释内容
*/

文档注释

/**
注释内容
*/


4. 常量

常量就是在程序中固定不变的量,一旦被定义,它的值就不能再被改变,在定义常量时需要对常量进行初始化,初始化后,不允许对常量的值进行更改。在Java中,常量名通常使用大写字母,如PI、AGE等。常量声明语法如下:

final 数据类型 常量名称 [= 值];  //[]中的内容为可选


5. 变量

一些在程序运行过程中数据值会发生改变的数据被称为变量,在Java中,所有的变量在使用前必须先声明,声明多个变量时必须使用逗号分隔开,声明变量的基本格式如下:

类型 变量名 [ = value][, 变量名 [= value] …];


5.1. 变量的分类

5.1.1. 成员变量

成员变量声明在一个类中,在方法、构造方法及语句块之外,其作用范围为整个类,在这个类中都可以访问到该成员变量。当一个对象被实例化之后,每个成员变量的值也就跟着确定,成员变量在对象创建的时候创建,在对象被销毁的时候销毁,成员变量可以直接通过变量名访问,但在静态方法及其他类中,就要通过类的引用访问。

成员变量的值应该至少被一个方法、构造方法或语句块引用,使得外部能够通过这些方式获取成员变量的信息。

访问修饰符可以修饰成员变量,成员变量对于类中的方法、构造方法或语句块是可见的。一般情况下,应该把成员变量设为私有(private)。通过使用访问修饰符可以使成员变量对子类可见。


5.1.2. 局部变量

局部变量在方法、构造方法或语句块中声明,它在方法、构造方法或语句块被执行的时候创建,当它们执行完成后,变量将会被销毁。访问修饰符不能用于局部变量,局部变量只在声明它的方法、构造方法或语句块中可见。局部变量没有默认值,所以局部变量被声明后,必须经过初始化才可以使用。

5.1.3. 静态变量

静态变量在类中以static关键字声明,必须在方法、构造方法和语句块外。无论一个类创建多少个对象,类只拥有静态变量的一份拷贝,静态变量的访问格式一般为:

类名.变量名

静态成员变量的默认值和成员变量一样,变量的值可以在声明时指定,也可以在构造方法中指定,除此之外,静态变量还可以在静态语句块中初始化。


5.2. Java中静态变量和成员变量的区别

类的成员变量按照是否被static修饰可分为两种:一种是被static修饰的变量,叫静态变量,而另一种是没有被static修饰的变量,叫成员变量。

静态变量和成员变量的区别如下:

(1) 静态变量在内存中只有一份拷贝(节省内存),JVM只为静态变量分配一次内存,在加载类的过程中完成静态变量的内存分配,可以用类名直接访问;

(2) 成员变量是每创建一个对象,就会为成员变量分配一次内存,成员变量可以在内存中有多个拷贝,互不影响(灵活)。


6. 运算符

运算符是在用变量或常量进行运算时经常使用的符号。根据操作数的数目来分,运算符分为一元运算符、二元运算符和三元运算符。根据功能来分,运算符分为赋值运算符、算术运算符、比较运算符、条件运算符、逻辑运算符、位运算符及自增自减运算符。


6.1. 赋值运算符

赋值运算符就是用于完成赋值的运算符。最基本的算术运算符就只有一个,就是“=”,而在它的基础之上结合加、减、乘、除等,又形成了复合赋值运算符。

6.1.1. 基本赋值运算符

基本赋值运算符“=”是一个二目运算符,其功能是将右边的表达式或者任何数值赋给左边的变量。

6.1.2. 复合赋值运算符

在基本的赋值运算符基础上,可以结合算术运算符形成复合运算符,其具有特殊含义。常用的复合赋值运算符如下表所示:

赋值运算符范例含义
+=a += ba = a + b
-=a -= ba = a - b
*=a *= ba = a * b
/=a /= ba = a / b
%=a %= ba = a % b
&=a &= ba = a & b
|=a |= ba = a | b
^=a ^= ba = a ^ b


6.2. 算术运算符

算术运算符的功能是进行算术运算。算术运算符可以分为加(+)、减(-)、乘(*)、除(/)及取模这5种运算符,它们组成了程序中最常用的算术运算符。各种算术运算符的含义及其应用如下表所示:

运算符含义实例结果
+连接的两个变量或常量进行加法运算5 + 611
-连接的两个变量或常量进行减法运算5月6日-1
*连接的两个变量或常量进行乘法运算5 * 630
/连接的两个变量进行除法运算5月6日0
%模运算,连接两个变量或常量进行除法运算的余数5 % 65


6.3. 比较运算符

比较运算符是指对两个操作数进行关系运算的运算符,属于二元运算符。比较运算符也是Java程序中经常会用到的运算符,它的结果通常是布尔类型,可将它们的比较结果作为判断或循环的条件。常用的比较运算符的含义及应用如下表所示:

运算符含义实例结果
>大于运算符6 > 8false
>=大于等于运算符6 >= 8false
<小于运算符6 < 8true
<=小于等于运算符6 <= 8true
==等于运算符6 == 8false
!=不等运算符6 != 8true


6.4. 条件运算符

条件运算符的符号是“? : ”,条件运算符属于三目运算符,需要3个操作数,可将其理解为if…else语句的简化,一般语法结构如下:

Result = <expression> ? <statement1> : <statement2>


6.5. 逻辑运算符

逻辑运算符用来把各个运算的变量(或常量)连接起来组成一个逻辑表达式,来判断编程中某个表达式是否成立,判断的结果是true或false。逻辑运算符的具体含义及应用如下表所示:

运算符含义实例结果
&&逻辑与(AND)false && truefalse
||逻辑或(OR)false || truetrue
!逻辑非(NOT)!falsetrue

逻辑与运算符表示它连接的两个条件同时成立时,整个逻辑与运算才成立;逻辑或运算符表示连接的两个条件其中有一个成立时,整个逻辑或运算就成立;而逻辑非运算符表示相反的运算,如果条件成立则使用逻辑非运算的逻辑表达式值为不成立,反之亦然。

6.6. 位运算符

位运算符主要用于对操作数为二进制的位进行运算。按位运算表示按每个二进制位来进行运算,其操作数的类型是整数类型以及字符类型,位运算符大致分为两大类,即按位运算符和移位运算符,各运算符的含义及功能如下表所示:

运算符含义实例结果运算分类
&按位与6 & 44按位运算符
|按位或6 | 46
^按位异或6 …… 42
~按位取反~6-7
<<左移10<<120移位运算符
>>右移10>>15
>>>无符号右移


6.6.1. 按位与运算

按位与运算的运算符为“&”,是双目运算符。其运算规则是:先将参与运算的数转换成二进制数,然后进行低位对齐,高位不足补零;如果对应的二进制位同时为1,则结果为1,否则为0。

2 & 3 = 2

2的二进制数为0010,3的二进制数为0011,按位与的结果是0010,换算成十进制即为2。


6.6.2. 按位或运算

按位或的运算符为“|”,是双目运算符,其运算规则也是需要先将参与运算的数转换成二进制,然后进行低位补齐,高位不足补零;如果对应的二进制位有一个为1,结果则为1,否则为0。

5 & 6 = 7

5转为二进制为0101,6的二进制为0110,按位或的结果是0111,换算成十进制即为7。


6.6.3. 按位异或运算

按位异或运算的运算符为“^”,是双目运算符,其运算规则是:先将参与运算的数转换成二进制,然后进行低位补齐,高位不足补零,如果对应的位同时为1(或同时为0),结果为0,否则结果为1。

7 ^ 8 = 15

7的二进制数为0111,8的二进制数为1000,按位异或的结果是1111,换算成十进制即为15。


6.6.4. 按位取反运算

按位取反运算的运算符为“~”,是单目运算符,其运算规则是:先将参与运算的数转换成二进制数,然后将各位数取反(1改为0,0改为1),二进制数在内存中是以补码形式存在的,最高位为符号位,正数的最高位为0,负数的最高位为1,若按位取反,还需结合最高位考虑

~9 = -10

思路1:首先将9转换成二进制形式,即为0000 1001(这里用八位表示该原码),按位取反(包括符号位)得到1111 0110,除符号位,对其他位进行取反得到1000 1001,然后+1补码得到原码为1000 1010,最高位为1,所以是负数,而1010十进制为10,加上符号便为-10

思路2:将9装换成二进制形式,即为0000 1001, 按位取反得到1111 0110,减1补码得到1111 0101,除符号位取反,得原码1000 1010

思路3:最高位符号位变为1,低位1001加1即可

~-7 = 6

思路1:首先将7转换成二进制形式,即为0000 0111,转化为负数,按位取反(包括符号位)得1111 1000,加1补码得1111 1001,按位取反(包括符号位)得0000 0110,即为6

思路2:首先将7转换成二进制形式,即为0000 0111,将0000 0111减1即为~-7的结果6

总结: 正数按位取反的话,将最高位改为1,低位+1即可;负数按位取反的话,取绝对值的二进制,低位减1即可。记住正+负-就行。


6.6.5. 左移位运算

左移位运算的运算符是“<<”,其运算规则是:按二进制形式把所有数字向左移动右边操作数指定的位数,高位数移出(舍弃),低位的空位补零。格式如下:

a << b

该式子表示将a的二进制式的所有数字向左移动b位,相当于a * 2b,如3 << 2,就是将0000 0011向左移动2位,变为0000 1100,结果为3 * 22 = 12。


6.6.6. 右移位运算

右移位运算的运算符是“>>”,其运算规则是:按二进制形式把所有数字向右移动右边操作数指定的位数,低位移出(舍弃),高位补符号位(正数补0,负数补1)。格式如下:

c >> d

该式子表示将c的二进制式的所有数字向右移动d位,相当于c / 2d如20 >> 2,就是将 0001 0100向右移动2位,变为0000 0101,结果为 20 / 22 = 5。


6.6.7. 无符号右移运算

无符号右移运算的运算符是“>>>”。其运算规则是:按二进制形式把所有数字向右移动右边操作数指定的位数,低位数移出(舍弃),高位补零。同右移位运算相似,只是无符号右移不需要高位补1。


6.7. 自增和自减运算符

自增(++)和自减(--)运算符是一种特殊的算术运算符,一般算术运算符需要两个操作数来进行运算,而自增和自减运算符只需要一个操作数。

“++”表示自增运算符,它表示对使用该运算符的变量进行加1的运算

“--”表示自减运算符,它表示对使用该运算符的变量进行减1的运算

当一个自增或自减运算符用在一个变量之前,则表示首先对该变量进行递增或递减运算,然后返回该变量的值。


6.8. 运算符优先级

优先级运算符
1括号,如()和[]
2一元运算符,如 -、++、-- 和 !
3算术运算符,如 *、/、%、+ 和 -
4关系运算符,如 >、>=、<、<=、==和 !=
5逻辑运算符,如 &、^、|、&&、||
6条件运算符和赋值运算符,如 ? : 、=、*=、/=、+= 和 -=


7. 流程控制

流程控制语句用于控制程序的流程,以实现程序的各种结构方式。所有应用程序开发环境都提供一个判定过程,称为控制流语句,即程序控制语句,它用于引导应用程序的执行。

程序控制语句分为3类:

分支语句:包括if语句和switch语句

循环语句:包括for循环语句、 while循环语句和do…while循环语句

跳转语句:包括break语句、 continue语句和return语句


7.1. 分支控制

顺序结构只能顺序执行,不能进行判断和选择,因此需要分支结构。分支结构是逻辑选择的核心,同时也是所有流程控制结构中最基础的控制语句。程序在执行过程中会根据条件来选择执行程序分支。分支语句包含两种重要的语句,使用它们可以实现程序流程的分支控制,这两种语句是 if 和 switch 语句。


7.1.1 if 语句

一个 if 语句包含一个布尔表达式和一条或多条语句。if 语句的一般语法结构如下:

if (布尔表达式)
{
  //如果布尔表达式为true将执行的语句块
}

如果布尔表达式的值为 true,则执行 if 语句中的代码块,否则执行 if 语句块后面的代码。


7.1.2 if…else 语句

if语句后面可以跟else语句,当if语句的布尔表达式值为false时,查else语句块会被执行。该语顺序结构只能顺序执行,不能进行判断和选择,因此需要分支结构。分支结构是逻辑选择的核心,同时也是所有流程控制结构中最基础的控制语句。程序在执行过程中会根据条件来选择执行程序分支。分支语句包含两种重要的语句,使用它们可以实现程序流程的分支控制,这两种语句是 if 和 switch 语句。句还可以嵌套使用,完成多路分支及更复杂的程序流程。使用它们的一般语法结构如下:

if (布尔表达式) {
  //如果布尔表达式的值为true
} else {
  //如果布尔表达式的值为false
}


7.1.3 if…else if…else语句

if 语句后面还可以跟else if…else语句,这种语句可以检测到多种可能的情况,它的语法格式如下:

if (布尔表达式1) {
  //如果布尔表达式1的值为true,执行该代码块
} else if (布尔表达式2) {
  //如果布尔表达式2的值为true,执行该代码块
} else if (布尔表达式3) {
  //如果布尔表达式3为true时,执行该代码块
} else {
  //当以上布尔表达式的值都为false时,执行该代码块
}

使用 if…else if…else 这个语句时,需要注意以下几点:

  • if 语句最多只有一个else语句,且else语句要在所有的else…if 语句之后
  • if 语句可以有若干个else if 语句,它们必须在else语句之前
  • 一旦其中有一个else if 语句检测为true,其他的else if 及else语句都将跳过执行


7.1.4 嵌套使用 if…else语句

if…else 语句可以实现嵌套使用,不论是在 if 语句块还是在 else 语句块中,都可以再次嵌入 if…else 语句。嵌套使用 if…else 语句,可以实现控制程序的多个流程,实现多路分支,满足编程的需求。嵌套使用 if…else 的语法结构如下:

if (布尔表达式1) {
  //如果布尔表达式1值为true,执行代码块
  if (布尔表达式2) {
    //如果布尔表达式2值为true,执行此代码块
  } else {
    //如果布尔表达式的值为false,执行此代码块
   }
}


7.1.5 switch语句

switch (判断的变量) {
  case value1:
    //执行语句1
    break;
  case value2:
    //执行语句2
    break;
  …
  case value n:
    //执行语句n
    break;
  default:  //可选
    //执行语句
}

switch语句有如下规则:

  • switch语句有多个case语句,每个case后面跟一个比较比较的值和冒号。
  • case语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
  • 当变量的值与case语句的值相等时,那么执行这条case语句,直到break语句出现,跳出switch语句。
  • 遇到break语句时,程序跳转到switch语句后面执行。如果没有break语句出现,成程序会继续执行下一条case语句,直到出现break语句。
  • switch语句还可以包含一个default分支,该分支必须是switch语句的最后一个分支。 default语句在没有case语句的值和变量值相等的时候执行,default分支不需要break语句。


7.2 循环控制

顺序结构的程序语句只能被执行一次,如果想要同样的操作执行多次,就需要使用循环结构。

Java中三种主要的循环结构: while循环、 do while循环、 for 循环和增强型 for 循环。


7.2.1 for循环

for循环语句是技术型循环语句,提前指定循环的次数,适用于循环次数已知的情况。使用for循环时,一般遵循下面的语法结构:

for (初始化; 布尔表达式; 更新) {
  循环体
}

关于for循环有以下几点说明:

  • 首先初始化变量。可以声明一种类型也可初始化一个或多个循环控制变量,还可以是空语句。
  • 判断布尔表达式的值。如果为true,循环体被执行。如果为false,循环中止,开始执行循环体后面的语句。
  • 执行一次循环后,更新循环控制变量。
  • 再次判断布尔表达式,循环执行上面的过程。


7.2.2 while循环

while 循环是最基本的循环,它也可以控制一条或者多条语句的循环执行。和 for 循环语句相似,都需要一个判断条件,如果该条件为真则执行循环语句,否则跳出循环。而 for 循环语句与 while 循环语句不同的是 for 循环语句的循环次数确定,而 while 与循环语句的循环次数不确定。While循环的结构如下:

while (布尔表达式) {
  //循环体
}


7.2.3 do while循环

while循环有时称为“当型循环”,因为它在循环体执行前先进行条件判断,而do while循环称为“直到型循环”,它会先执行循环体,然后进行条件判断。使用do while循环的一般语法结构如下:

do {
  //循环体
} while (布尔表达式);


7.2.4 增强型for循环

增强型for循环的语法结构如下:

for (声明语句 : 表达式) {
  //代码
}


7.3 跳转语句

在使用循环语句时,只有循环条件表达式的值为假时才能结束循环。如果想提前中断循环,就需要在循环语句块中添加跳转语句。

跳转语句有break语句、continue语句和return语句。

  • break语句跳出循环,执行循环后面的语句。
  • continue语句是跳过本次循环,开始执行下一次循环。
  • return语句是跳出方法,并为方法返回相应的值。


7.3.1 break语句

break主要用于在循环语句或者switch语句中,用来跳出整个语句块。break跳出最里层的循环,并且继续执行该循环下面的语句。 break的使用如前文switch。


7.3.2 continue语句

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


7.3.3 return语句

return 语句经常使用在类的方法中,在类中使用 return 语句可以退出类的方法,把控制返回给该方法的调用者;如果方法有返回类型,则必须在方法中使用 return 语句返回一个该类型的值。使用return 语句的一般语法结构如下所示:

return 返回类型;
相关题目
AAA001 AAA033 AAA043 AAA045 AAA096 AAA163 AAA164 AAA165 AAA166 AAA167 AAA168 AAA170 AAA171 AAA172 AAA175 AAA178 AAA182 AAA183 AAA184 AAA187 AAA197 AAA223 AAA232 AAA245 AAA256 AAA259 AAA265 AAA267 AAA275 AAA276 AAA277 AAA281 AAA288 AAA292 AAA294 AAA296 AAA300 AAA304 AAA313 AAA321 AAA325 AAA344 AAA346 AAA358 AAA360 AAA362 AAA368 AAA382 AAA383 AAA384 AAA387 AAA389 AAA395 AAA396 AAA399 AAA404 AAA414 AAA415 AAA416 AAA417 AAA418 AAA419 AAA420 AAA425 AAA427 AAA429 AAA434 AAA437 AAA440 AAA443 AAA446 AAA453 AAA457 AAA460 AAA461 AAA465 AAA492 AAA494 AAA495 AAA498 AAA500 AAA506 AAA518 AAA522 AAA524 AAA527 AAA532 AAA535 AAA544 AAA556 AAA557 AAA562 AAA563 AAA564 AAA567 AAA570 AAA574 AAA575 AAA576 AAA582 AAA584 AAA586 AAA589 AAA593 AAA600 AAA601 AAA607 AAA608 AAA611 AAA614 AAA615 AAA617 AAA618 AAA619 AAA630 AAA634 AAA641 AAA658 AAA662 AAA668 AAA677 AAA680 AAA681 AAA684 AAA687 AAA689 AAA695 AAA710 AAA723 AAA727 AAA744 AAA750 AAB010 AAB011 AAB012 AAB013 AAB014 AAB015 AAC030 AAE001 AAE012 AAE013 AAE014 AAE016 AAE018 AAE019 AAE028 AAE029 AAE030 AAE033 AAE034 AAE035 AAE037 AAE040 AAE041 AAE042 AAE045 AAE046 AAE049 AAE050 AAE051 AAE054 AAE058 AAG001 AAG003 AAJ002 AAJ005 AAJ006 AAJ013 AAJ014 AAJ015 AAJ021 AAJ022 AAJ023 AAJ024 AAJ032 AAJ037 AAJ051 AAJ055 AAJ059 AAJ064 AAJ065 AAJ100 AAJ101 AAJ102 AAJ107 AAJ116 AAJ134 AAJ149 AAJ190 AAJ256 AAJ268 AAJ295 AAJ338 AAJ342 AAJ349 AAJ353 AAJ362 AAJ378 AAJ538 AAJ581 AAJ590 AAJ613 AAJ616 AAJ619 AAJ621 AAJ623 AAJ624 AAJ625 AAJ626 AAJ628 AAJ629 AAJ630 AAJ631 AAJ632 AAJ633 AAJ634 AAJ635 AAJ637 AAJ639 AAJ640 AAJ641 AAJ642 AAJ644 AAJ647 AAJ648 AAJ649 AAJ650 AAJ652 AAJ655 AAJ665 AAJ674 AAJ703 AAJ731 AAJ732 AAJ735 AAJ740 AAJ742 AAJ744 AAJ756 AAJ757 AAJ759 AAJ763 AAJ765 AAJ768 AAJ772 AAJ774 AAJ775 AAJ779 AAJ781 AAJ782 AAJ784 AAJ785 AAJ787 AAJ788 AAJ789 AAJ795 AAJ797 AAJ798 AAJ799 AAJ800 AAJ802 AAJ805 AAJ807 AAJ813 AAJ814 AAJ816 AAJ817 AAJ822 AAJ824 AAJ829 AAJ830 AAJ838 AAJ839 AAJ840 AAJ842 AAJ843 AAJ851 AAJ856 AAJ860 AAJ861 AAJ864 AAJ867 AAJ868 AAJ876 AAJ879 AAJ886 AAJ889 AAJ890 AAJ893 AAJ899 AAS004 AAS013 AAS032 AAS033 AAS038 AAS061 AAA266 AAA329 AAA331 AAA340 AAA352 AAA354 AAA355 AAA356 AAA369 AAA370 AAA371 AAA379 AAA381 AAA391 AAA394 AAA397 AAA407 AAA479 AAA509 AAA566 AAA596 AAA597 AAA613 AAA648 AAJ777 AAJ836 AAJ891 AAA299 AAA585 AAJ834 AAA432 AAA433 AAA445 AAA513 AAJ883 AAA207 AAA333 AAA380 AAA493 AAJ482 AAS011 AAS138 AAS140 AAS177 AAS218 AAS248 AAS377 AAS379 AAS381 AAS406 AAS434 AAS437 AAS466 AAS478 AAA314 AAJ746 AAT037 AAT059 AAT060 AAT103 AAT107 AAT108 AAT113 AAT114 AAT116 AAA736 AAA051 AAA141 AAA332
技术能力测评
关于我们
公司简介
联系我们
联系我们
售前咨询: leizhongnan@eval100.com
售后服务: 0755-26415932
商务合作: support@eval100.com
友情链接
金蝶软件
快递100
关注我们
Copyright © 2023-2023 深圳慧题科技有限公司 粤ICP备2023109746号-1 粤公网安备44030002001082