内容正文:
04
数据类型的转换
任务目标
1. 能够正确描述 Java 的编译系统对不同类型数据进行运算时的转换规则;
2. 能够根据编程需要进行强制类型转换;
3. 能够领会“变则通, 通则存, 存则强” 的精髓, 拒绝做一个墨守成规的人。
赋值运算的基本要求是运算符左右两边的数据类型必须一致,如果遇到赋值号两边的数据类型不一致的情况,就需要把右边的数据类型转换成左边的数据类型。通常情况下,如果类型不一致,需要程序员在程序中进行强制类型转换,在某些特殊情况下,Java 也可以自动进行类型转换。
(一)强制类型转换
强制类型转换也叫显式转换,它的一般格式是:
( 数据类型 ) 变量名或表达式
由于不同数据类型所占用的存储空间不同,转换后可能丢失信息,所以当较长的数
据类型转换为较短的数据类型时必须使用强制类型转换,程序员需要自己确保数据在类
型转换后的有效性。请看下列语句:
int i;
long l = 0xFFFFFFFFFFL;
double d = 12.34;
i = (int)l; // 将 l 转换成 int 类型 , 有可能丢失信息。
i = (int)d; // 将 d 转换成 int 类型 , 有可能丢失信息。
l = (long)i; // 将 i 转换成 long 类型 , 不会丢失信息。
(二)自动类型转换
当赋值运算符左右两边数据类型不一致,且右边的数据类型存储长度小于等于左边的数据类型,即转换后不会丢失信息的情况下,Java 可以自动完成数据类型的转换。
short s = 10;
int i = 100;
fl oat f;
long l;
double d;
f = i; //i 自动转换成 float 类型。
l = i; //i 自动转换为 long 类型。
d = i; //i 自动转换为 double 类型。
i = s; //s 自动转换为 int 类型。
s = i; //i 不能自动转换为 short 类型。
简单类型除了 boolean 类型以外,其他的数据类型可以自动转换成其他的数据类型,要遵循的原则如图 2-3 所示。
05
流程控制语句
1、能正确掌握 Java 的分支语句的写法,根据编程需要编写选择结构程序;
任务目标
2、能正确掌握 Java 的循环语句的写法,根据编程需要编写循环结构程序;
3. 能正确掌握 break 语句和 continue 语句的写法, 根据编程需要应用;
4、不但能灵活运行知识, 也懂得按“规矩”办事。
一、条件分支
(一)if 语句
if 语句是最基本的分支控制语句,它可以让程序根据某些条件选择性地执行语句。
if 语句的形式如下:
if( 关系表达式) {
语句
}
它的含义是:如果关系表达式的值为 true,则执行后面大括号里的语句,否则就不执行大括号里的语句。例如,假设程序要判断字符变量 iChar 中保存的是不是字符“ q”,可以使用这样的语句:
if(iChar=='q'||iChar=='Q'){
System.out.println(" 是 Q。 ");
}
当字符 iChar 的值是字母 q(不管是大写还是小写)时,关系表达式的值为 true,因此执行大括号里的语句,即输出“是 Q。”这样一条信息。如果 iChar 的值不是字母 q,则不会显示这条信息。
需要注意的是,在上面的程序中,大括号里只有一条语句,因此可以省略大括号,
将程序简化为:
if(iChar=='q'||iChar=='Q')
System.out.println(" 是 Q。 ");
但如果有两条或以上的语句,则必须用大括号括起来。
(二)if…else 语句
有时,程序需要控制当条件满足和不满足时分别执行不同的语句,这时可以使用if…else 语句,通过判断一个条件,可以决定程序到底执行哪些语句。
if…else 语句的形式如下:
if( 关系表达式 )
{
语句 1
}
else
{
语句 2
}
它的含义是:如果关系表达式的值为 true,则执行后面大括号里的语句 1,否则执行大括号里的语句 2。语句 1 和语句 2 总会有一个被执行。语句 1 和语句 2 都可以是多行,如果只有一行,则相应的括号可以省略。
例如,假设程序要判断字符变量 iChar 中保存的是不是字符“q”,可以使用这样的语句:
if(iChar=='q'||iChar=='Q'){
System.out.println(" 是 Q。 ");