第 2章 Java基本语法
2.1 Java语言的基本组成
2.2 变量和直接量
2.3 数 据 类 型
2.4 运算符与表达式
2.5 Java语句及其控制结构
2.6 数 组
2.1 Java语言的基本组成
2.1.1 标识符
2.1.2 关键字
2.2 变量和直接量变量是一块取了名字的用来存储 Java
程序信息的内存区域,它是一些有意义的数据 。 在程序中,定义的每块被命名的内存区域只能存储一种特定类型的数据 。
在程序中直接给出的数值被称作直接量,直接量可以是一个具体的数值或字符串,每个直接量也属于一个特定的类型 。
2.3 数 据 类 型
2.3.1 integer数据类型
( 1) 字节 ( byte) 型
( 2) 短整 ( short) 型
( 3) 整 ( int) 型
( 4) 长整 ( long) 型
2.3.2 浮点数据类型
( 1)单精度浮点型( float)
( 2)双精度浮点型( double)
2.3.3 变量类型的转换
2.4 运算符与表达式
2.4.1 赋值运算符
2.4.2 算术运算符
2.4.3 关系运算符
2.4.4 条件运算符
2.4.5 逻辑运算符
2.5 Java语句及其控制结构
2.5.1 Java语句
Java语句是 Java标识符的集合,由关键字,常量,变量和表达式构成,是成员方法的主要成分,必须包含在类的方法体之中 。 Java语句有表达式语句,复合语句,
选择语句和循环语句等 。
语句以分号,;” 作为结束标志,单独的一个分号被看作一个空语句,空语句不做任何事情。
在表达式后边加上分号“;” 就是一个表达式语句。经常使用的表达式语句有赋值语句和方法调用语句。表达式语句是最简单的语句,它们被顺序执行,完成相应的操作。
复合语句也称为块 ( block) 语句,是包含在一对大括号,{ }” 中的任意语句序列 。 与其他语句用分号作结束符不同,复合语句右括号,}” 后面不需要分号 。 尽管复合语句含有任意多个语句,但从语法上讲,一个复合语句被看作一个简单语句 。
例 2-2:
public class Block{
public static void main(String args[])
{
int k,i=3,j=4;
k=i + j;
System.out.println("k="+k);
{
float f;
f=j+4.5F;
i++;
System.out.println("f="+f);
}
System.out.println("i="+i);
}
}
运行结果见图 2-2。
图 2-2
程序说明:在 main方法中有两个复合语句嵌套在一起,复合语句内包含的是表达式语句 。 第 1个复合语句中说明了 3个整型变量 k,i,j,它们不仅在第 1个复合语句中起作用,还在被嵌套的第 2个复合语句中起作用 。 而在第 2个复合语句中说明的变量
f仅在第 2个复合语句中起作用 。
在这个例子中,人为地加入了一个复合语句,在实际编程中并不多见。复合语句更广泛的应用是在结构式语句中,如选择语句和循环语句。当结构式语句中包含的表达式语句超过一条时,就要用大括号把它们括起来。
2.5.2 选择语句在复合语句中必须逐行执行每条命令 。
能否改变程序执行的顺序呢? 利用 if...else
结构就可以根据条件控制程序流程 。
1,if语句
if语句的语法结构如下:
if( 条件表达式)
s1语句 ;
这是最简单的单分支结构。条件表达式的值为 true,就执行 s1语句,否则就忽略 s1语句。 s1语句可以是复合语句。
2,if...else语句
if选择结构仅当条件为真时才执行某一动作,否则忽略这一动作。而 if...else选择结构允许程序员指定在条件为真或者条件为假时的不同动作。 if语句通常都与 else
语句配套使用,形成二分支结构。它的语法结构如下:
if( 条件表达式)
s1语句 ;
else
s2语句 ;
当条件表达式的值为 true,就执行 s1
语句,忽略 else和 s2语句;否则,条件表达式的值为 false,程序忽略 s1语句,执行 else
后面的 s2语句。 s1和 s2都可以是复合语句。
3,if...else复合结构对于复杂的情况,我们可以嵌套使用
if...else 语句 。 它的语法结构如下:
if( 条件表达式 1)
s1语句 ;
else if( 条件表达式 2)
s2 语句 ;
else
s3语句 ;
在这里依次计算条件表达式,如果某个条件表达式的值为 true,就执行它后面的语句,其余部分被忽略。所有表达式的值都为 false,就执行最后一个 else后的 s3语句。 s1,s2和 s3都可以是复合语句。
4,switch开关语句虽然嵌套的条件语句可实现多个分支处理,但嵌套太多时容易出错和混乱,这时可以使用开关语句 switch处理 。 实际上开关语句 switch也是一种 if...else结构,不过它使你在编程时很容易写出判断条件,
特别是有很多条件选项的时候 。
开关语句 switch的语法结构如下:
switch (表达式 )
{ case 常量 1;
语句 1;
break;
case 常量 2;
语句 2;
break;
……
default:
语句 n; }
其中 switch,case,default是关键字,
default子句可以省略。
开关语句先计算表达式,然后将表达式值与各个常量比较,如果表达式值与某个常量相等,就执行该常量后面的语句。
如果都不相等,就执行 default下面的语句,
如果无 default子句,就什么都不执行,直接跳出开关语句。
使用开关语句时,注意以下问题。
( 1) case后面的常量必须是整数或字符型,而且不能有相同的值。
( 2)通常在每一个 case中都应使用
break语句提供一个出口,使流程跳出开关语句。否则,在第一个满足条件 case后面的所有语句都会被执行,这种情况叫做落空。
( 3 ) 有些 case 标 号 列 在 一 起 ( 如
,case1:case2:”,中间没有语句 ),这表示对所列情况将进行同样的操作 。
2.5.3 循环语句
1,for循环语句
for循环的语法结构为:
for( 表达式 1;表达式 2;表达式 3)
循环体
2,while循环语句
while循环的语法结构为如下形式:
while ( 条件表达式 )
循环体
3,do...while循环如不用大括号,循环体中只含一条语句的 do...while结构如下:
do
语句
while( 条件 ) ;
只有一条语句的 do...while结构也常常写成如下形式:
do{
语句
}while( 条件 ) ;
4,循环语句的嵌套
5,循环语句小结一个循环一般应包括以下 4部分内容 。
( 1) 初始化部分 用来设置循环的一些初始条件,计数器清零等 。
( 2)循环体部分 这是反复被执行的一段代码,可以是单语句,也可以是复合语句。
( 3)迭代部分 这是在当前循环结束,
下一次循环开始时执行的语句,常用来使计数器加 1或减 1。
( 4)终止部分 通常是一个布尔表达式,每一次循环要对该表达式求值,以验证是否满足循环终止条件。
2.5.4 跳转语句
1,break和 continue语句
2,带标号的 break和 continue语句
2.6 数 组
2.6.1 数组的声明和建立数组按如下格式定义:
type arrayname[ ];
type是数组类型,它指出数组中各元素的类型,arrayname为数组名 。
2.6.2 多维数组以二维数组为例,其格式为:
type arrayname[ ][ ];
2.1 Java语言的基本组成
2.2 变量和直接量
2.3 数 据 类 型
2.4 运算符与表达式
2.5 Java语句及其控制结构
2.6 数 组
2.1 Java语言的基本组成
2.1.1 标识符
2.1.2 关键字
2.2 变量和直接量变量是一块取了名字的用来存储 Java
程序信息的内存区域,它是一些有意义的数据 。 在程序中,定义的每块被命名的内存区域只能存储一种特定类型的数据 。
在程序中直接给出的数值被称作直接量,直接量可以是一个具体的数值或字符串,每个直接量也属于一个特定的类型 。
2.3 数 据 类 型
2.3.1 integer数据类型
( 1) 字节 ( byte) 型
( 2) 短整 ( short) 型
( 3) 整 ( int) 型
( 4) 长整 ( long) 型
2.3.2 浮点数据类型
( 1)单精度浮点型( float)
( 2)双精度浮点型( double)
2.3.3 变量类型的转换
2.4 运算符与表达式
2.4.1 赋值运算符
2.4.2 算术运算符
2.4.3 关系运算符
2.4.4 条件运算符
2.4.5 逻辑运算符
2.5 Java语句及其控制结构
2.5.1 Java语句
Java语句是 Java标识符的集合,由关键字,常量,变量和表达式构成,是成员方法的主要成分,必须包含在类的方法体之中 。 Java语句有表达式语句,复合语句,
选择语句和循环语句等 。
语句以分号,;” 作为结束标志,单独的一个分号被看作一个空语句,空语句不做任何事情。
在表达式后边加上分号“;” 就是一个表达式语句。经常使用的表达式语句有赋值语句和方法调用语句。表达式语句是最简单的语句,它们被顺序执行,完成相应的操作。
复合语句也称为块 ( block) 语句,是包含在一对大括号,{ }” 中的任意语句序列 。 与其他语句用分号作结束符不同,复合语句右括号,}” 后面不需要分号 。 尽管复合语句含有任意多个语句,但从语法上讲,一个复合语句被看作一个简单语句 。
例 2-2:
public class Block{
public static void main(String args[])
{
int k,i=3,j=4;
k=i + j;
System.out.println("k="+k);
{
float f;
f=j+4.5F;
i++;
System.out.println("f="+f);
}
System.out.println("i="+i);
}
}
运行结果见图 2-2。
图 2-2
程序说明:在 main方法中有两个复合语句嵌套在一起,复合语句内包含的是表达式语句 。 第 1个复合语句中说明了 3个整型变量 k,i,j,它们不仅在第 1个复合语句中起作用,还在被嵌套的第 2个复合语句中起作用 。 而在第 2个复合语句中说明的变量
f仅在第 2个复合语句中起作用 。
在这个例子中,人为地加入了一个复合语句,在实际编程中并不多见。复合语句更广泛的应用是在结构式语句中,如选择语句和循环语句。当结构式语句中包含的表达式语句超过一条时,就要用大括号把它们括起来。
2.5.2 选择语句在复合语句中必须逐行执行每条命令 。
能否改变程序执行的顺序呢? 利用 if...else
结构就可以根据条件控制程序流程 。
1,if语句
if语句的语法结构如下:
if( 条件表达式)
s1语句 ;
这是最简单的单分支结构。条件表达式的值为 true,就执行 s1语句,否则就忽略 s1语句。 s1语句可以是复合语句。
2,if...else语句
if选择结构仅当条件为真时才执行某一动作,否则忽略这一动作。而 if...else选择结构允许程序员指定在条件为真或者条件为假时的不同动作。 if语句通常都与 else
语句配套使用,形成二分支结构。它的语法结构如下:
if( 条件表达式)
s1语句 ;
else
s2语句 ;
当条件表达式的值为 true,就执行 s1
语句,忽略 else和 s2语句;否则,条件表达式的值为 false,程序忽略 s1语句,执行 else
后面的 s2语句。 s1和 s2都可以是复合语句。
3,if...else复合结构对于复杂的情况,我们可以嵌套使用
if...else 语句 。 它的语法结构如下:
if( 条件表达式 1)
s1语句 ;
else if( 条件表达式 2)
s2 语句 ;
else
s3语句 ;
在这里依次计算条件表达式,如果某个条件表达式的值为 true,就执行它后面的语句,其余部分被忽略。所有表达式的值都为 false,就执行最后一个 else后的 s3语句。 s1,s2和 s3都可以是复合语句。
4,switch开关语句虽然嵌套的条件语句可实现多个分支处理,但嵌套太多时容易出错和混乱,这时可以使用开关语句 switch处理 。 实际上开关语句 switch也是一种 if...else结构,不过它使你在编程时很容易写出判断条件,
特别是有很多条件选项的时候 。
开关语句 switch的语法结构如下:
switch (表达式 )
{ case 常量 1;
语句 1;
break;
case 常量 2;
语句 2;
break;
……
default:
语句 n; }
其中 switch,case,default是关键字,
default子句可以省略。
开关语句先计算表达式,然后将表达式值与各个常量比较,如果表达式值与某个常量相等,就执行该常量后面的语句。
如果都不相等,就执行 default下面的语句,
如果无 default子句,就什么都不执行,直接跳出开关语句。
使用开关语句时,注意以下问题。
( 1) case后面的常量必须是整数或字符型,而且不能有相同的值。
( 2)通常在每一个 case中都应使用
break语句提供一个出口,使流程跳出开关语句。否则,在第一个满足条件 case后面的所有语句都会被执行,这种情况叫做落空。
( 3 ) 有些 case 标 号 列 在 一 起 ( 如
,case1:case2:”,中间没有语句 ),这表示对所列情况将进行同样的操作 。
2.5.3 循环语句
1,for循环语句
for循环的语法结构为:
for( 表达式 1;表达式 2;表达式 3)
循环体
2,while循环语句
while循环的语法结构为如下形式:
while ( 条件表达式 )
循环体
3,do...while循环如不用大括号,循环体中只含一条语句的 do...while结构如下:
do
语句
while( 条件 ) ;
只有一条语句的 do...while结构也常常写成如下形式:
do{
语句
}while( 条件 ) ;
4,循环语句的嵌套
5,循环语句小结一个循环一般应包括以下 4部分内容 。
( 1) 初始化部分 用来设置循环的一些初始条件,计数器清零等 。
( 2)循环体部分 这是反复被执行的一段代码,可以是单语句,也可以是复合语句。
( 3)迭代部分 这是在当前循环结束,
下一次循环开始时执行的语句,常用来使计数器加 1或减 1。
( 4)终止部分 通常是一个布尔表达式,每一次循环要对该表达式求值,以验证是否满足循环终止条件。
2.5.4 跳转语句
1,break和 continue语句
2,带标号的 break和 continue语句
2.6 数 组
2.6.1 数组的声明和建立数组按如下格式定义:
type arrayname[ ];
type是数组类型,它指出数组中各元素的类型,arrayname为数组名 。
2.6.2 多维数组以二维数组为例,其格式为:
type arrayname[ ][ ];