购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

典型工作环节2 收集资讯

资讯1输出学生基本信息
资讯描述

学生李磊的个人信息如下:

姓名:李磊;性别:男;年龄:18;Java成绩:90.2;英语成绩:88.5。

现在需要把该学生信息存储到Java程序中,并在控制台输出,运行效果如图2-1所示。

图2-1 输出学生信息运行效果

资讯分析

把李磊的成绩等相关信息存储到Java程序中,首先需要定义好接收这些数据的变量,然后采用直接赋值的方式把数据存放到变量中,最后格式化输出这些变量值。

相关知识

Java语言不采用通常计算机语言系统所使用的ASCII代码集,而是采用更为国际化的Unicode字符集。在这种字符集中,每个字符用两个字节(即16位)表示。这样,整个字符集中共包含65 535个字符。其中,前面256个字符表示ASCII码,使Java对ASCII码有兼容性;后面21 000个字符用来表示汉字等非拉丁字符。但Unicode只能用在Java平台内部,当涉及打印、屏幕显示、键盘输入等外部操作时,仍由计算机的具体操作系统决定其表示方式。

(1)Java标识符

标识符是用来表示常量、变量、标号、方法、类、接口以及包的名字。用户都必须为自己程序中的每一个成分取唯一的名字(标识符)。在Java语言中对标识符的定义有如下规定:

①标识符的长度不限。但在实际命名时不宜过长,过长会增加录入的工作量。

②标识符可以有字母、数字、下画线“_”和美元符号“$”组成,但必须以字母、下画线或美元符号开头。

③标识符中同一个字符的大写或小写被认为是不同的标识符,即标识符区分字母的大小写。例如,A1_A和a1_a是两个不同的标识符。

④通常标识符开头或标识符出现的每个单词的首字母通常大写,其余字母小写,如setArea。

(2)关键字

Java关键字(也称为保留字)是指那些具有特定含义和专门用途的单词,它们不能被用作标识符。Java关键字共计53个(Java的官方文档认为字面常量true、false和null不是关键字,因此官方认定的关键字是50个)。按其作用可分为以下几类(表2-1)。

表2-1 Java关键字

(3)分隔符

Java语言的分隔符用于分隔标识符和关键字共6种,即空格、句号、分号、圆括号、方括号和花括号,其名称及说明见表2-2。

表2-2 分隔符

(4)注释

注释是程序中的说明性文字,是程序的非执行部分。在程序中加注释的目的是使程序更加易读易理解,有助于修饰程序以及方便他人阅读。程序(软件)的易读性和易理解性是软件质量评价的重要指标之一,程序中的注释对于学术交流和软件的维护具有重要的作用。Java语言中使用如下3种方式给程序加注释:

①//注释内容。表示从“//”开头,直到此行末尾均为注释。

例如://定义变量

②/*注释内容*/。表示从“/*”开头,直到“*/”结束均作为注释,可占多行。

例如:

/*定义类

定义变量*/

③/**注释内容*/。表示从“/**”开头,直到“*/”结束均作为注释,可占多行。

例如:

/**定义类

定义方法

定义变量*/

(5)常量

常量是指在程序运行过程中其值不变的量。

1)字面常量

常量在表达式中用文字串表示,它区分不同类型,如整型常量123、-15,实型常量12.1,字符常量'a',布尔常量true,字符串类型常量"Java"。

2)符号常量

符号常量是字面常量的别名,用Java标识符表示。声明符号常量的一般格式如下:

final数据类型 符号常量名=常量值;

例如:final double PI=3.14159;

数据类型:可以是任意的数据类型。

符号常量名:常量的名字。

常量值:与数据类型匹配的常量值。

关键字final的含义是最终,即不能被修改的。

(6)变量

1)变量类型

变量是程序在运算过程中可以被修改的量。声明变量的一般格式如下:

[变量修饰符]数据类型 变量名[=初始值];

例如:double x=1.23;

变量修饰符:修饰符后面章节会详细描述。

数据类型:可以是任意的数据类型。

变量名:变量的名字。

初始值:与数据类型匹配的值。

2)变量的作用域

变量的作用域是指什么范围的程序可以访问该变量。每一个变量都有其作用域范围。变量说明的位置及其修饰符就是确定了其作用域。一个域在Java程序中用“{”和“}”来界定,它可以是类体、方法体和复合语句。变量在其作用域内不能重名。

局部变量是方法体内说明的变量,按局部变量说明的位置,它的作用域可以是整个说明的方法体,也可以是方法体内的一程序段。

(7)基本数据类型

Java的基本数据类型有4种,见表2-3。这4种类型为整型、浮点型、字符型和布尔型。

表2-3 Java基本数据类型

续表

由于字符型较其他类型在使用的过程中复杂,在此做一些特别的讲解。

在Java中,一个char代表一个16位无符号的(不分正负的)Unicode字符,占2个字节。一个char常量必须包含在单引号内(' '),如:

char c='a';//指定变量c为char型,且赋初值为'a'。

1)整型

整型是那些没有小数部分的数据类型,它分为下列不同的整数数据类型:byte、short、int和long。这些不同整数数据类型的意义在于它们所需的内存空间大小不同,这也确定了它们所能表示的数值的范围不同。

采用不同的整数类型表达同一数值,在存储单元中的存储情况是不同的。图2-2表示数值10的不同数据类型的存储形式。

图2-2 数值10的不同数据类型的存储形式

①整型常量:有3种表示方式,最常用的是十进制数(无前缀),也可以用八进制数(前缀为0)和十六进制数(前缀为0x或0X)。因此12、012和0x12这3个整型常量的值是互不相同的。

②整型变量:byte、short型不太常用,通常在内存容量有限的设备上使用。int型是最为常用的,但如果要表示地球上的人数(20亿以上的整数)这样大的数据,则要用到长整数。例如:

2)浮点型

浮点型是带有小数部分的数据类型,也叫实型。Java包括两种不同的实型:float和double。两种浮点数据类型间的唯一区别是所占内存的大小不同。

Java缺省的浮点型是double型,如果要表示float型,要在数字后加后缀F或f;如果要表示double型,也可以在数字后面加后缀D或d。

①浮点型常量有两种表示方法,最常用的是小数表示法,用十进制数的形式表示,由数字和小数点组成,必须包含小数点,如123.45;另一种是科学技术法,如1.2345E2,它表示1.2345×10 2

②浮点型变量分为两种,即单精度浮点型float和双精度浮点型double。double比float的精度更高,可以表示的数据范围更大。例如:

3)布尔型

①布尔型常量只有两个,即true和false。它们也是Java关键字。

②布尔型变量是boolean,取值只能是true和false。并且不能与整形或其他类型转换。布尔型变量的默认值是false。

4)字符型

Java的字符使用16位的Unicode编码表示,它可以支持世界上所有语言。一般计算机语言通常使用ASCII码,用8位表示一个字符。ASCII码是Unicode码的一个子集,Unicode表示ASCII码时,其高字节为0,它是前255个字符。Unicode字符通常用十六进制表示。例如“\u0000”~“\u00ff”表示ASCII码集。“\u”表示转义字符,它用来表示其后4个十六进制数字是Unicode代码。

①字符型常量:就是用两个单引号括起来的一个字符。例如:'A'、'a'、'3'、””,这里'A'和'a'分别表示大写字符“A”(其ASCII码值为65)及小写字符“a”(其ASCII码的值为97),即作为字符数据是要区分大小写的。'3'是字符“3”(其ASCII码值为51),而不是整数3。空格也是一个字符。

Java允许使用一种特殊形式的字符常量值,表示一些难以用一般字符来表示的字符,这种特殊形式的字符是一个以“\”开头的字符序列,称为转移符。Java中常用的转义字符及其所表示的意义见表2-4。

表2-4 Java中常用的转义字符

续表

②字符型变量的类型是char,计算机用16位来表示。其值范围为0~65 535。字符型变量说明如下:

③字符串常量:一个字符串常量是括在两个双引号之间的字符序列。若两个双引号之间没有任何字符则为空串。

以下是字符串的一些例子:

Java语言把字符串常量当String类型的一个对象来处理,以后有详细介绍。

代码示例

StudentInfo.java

资讯2计算矩形周长
资讯描述

键盘输入矩形的宽和高,计算矩形的周长,并输出该矩形的周长。运行效果如图2-3所示。

图2-3 计算矩形周长运行效果

资讯分析

程序从键盘接收数据,需要用到Scanner这个工具类,程序中定义好宽和高的变量,接收键盘输入的数据,并根据公式(宽+高)*2,计算出周长,最后在控制台输出。

相关知识

在Java编程语言中,运算符是一个符号,用来操作一个或多个表达式进行运算。所谓表达式是指包含符号与变量或常量组合的语句。在表达式中使用的符号就是运算符,这些运算符所操作的变量或常量称为操作数。

Java中的运算符类型可分为单目、双目和三目运算符。要求一个操作数的运算符为单目运算符;要求两个操作数的运算符为双目运算符;三目运算符则要求有3个操作数。运算符将值或简单的表达式组合成更为复杂的表达式,并得到这些表达式的返回值。

(1)表达式

表达式是由操作数和运算符按一定语法形式组成的符号序列,以下是合法的表达式例子:a+b、(a+b)*(c-d)。

一个表达式经过运算后,可以产生一个确定的值,即表达式的值。表达式的值的数据类型称为表达式的类型。一个常量或一个变量是最简单的表达式。表达式作为一个整体还可以看成一个操作数参与到其他运算中,形成复杂的表达式。

(2)运算符

运算符指对操作数的运算。

运算符按其要求的操作数个数分为:

· 单目运算符 如++、--

· 双目运算符 如+、-、*、/、%

· 三目运算符 如?:

运算符按其功能分为7类:

· 算数运算符 如+、-、*、/、%、++、--

· 关系运算符 如 >、<、>=、<=、==、!=

· 逻辑运算符 如!、&&、||、^

· 位运算符 如 >>、<<、>>>、&、|、^、~

· 条件运算符 如?:

· 赋值运算符 如=、+=、-=

· 其他分量运算符 如.、下标运算符[]、实例运算符instanceof

(3)算术运算符

算术运算符用于对整型数和实型数的运算。按其要求的操作数的个数分为单目运算符和双目运算符两类。

单目运算符 如+(单目加,取正值)、-(单目减,取负值)、++(自加)、--(自减)。

双目运算符 如+(加)、-(减)、*(乘)、/(除)、%(取余数或取模)。

算术运算符的使用规则见表2-5。

表2-5 算术运算符使用规则

(4)Scanner类

要想获取键盘输入的数据,必须先创建Scanner类的对象,可以通过Scanner类来获取用户的输入。

创建对象代码如下:

然后Sc对象调用下列方法(函数),读取用户在命令行输入的各种数据类型:nextBoolean()、nextByte()、nextDouble()、nextFloat()、nextInt()、nextLine()、nextLong()和nextShort()。这些方法执行时都会造成堵塞,等待用户在命令行输入数据然后回车确认。nextLine()等待用户输入一个文本行并且回车,该方法得到一个String类型的数据。

代码示例

RecArea.java

资讯3判断闰年
资讯描述

根据键盘输入的年份,判断该年是否是闰年,并输出判断结果,运行效果如图2-4所示。

图2-4 判断闰年运行效果

资讯分析

闰年就是可以被4整除且不能被100整除,或能被400整除的年。

相关知识

(1)分支结构

分支结构是根据假设的条件成立与否,再决定执行什么样语句的结构,它的作用是让程序更有选择性。Java语言提供两种分支结构,即if分支语句和switch分支语句。

1)if-else语句

if-else语句根据判定条件的真假来执行两种操作中的一种。

简单形式if-else语句的语法形式为

其中,用“[]”括起来的else部分是可选的(可以有也可以没有)。

若无else部分,if语句的流程,如图2-5所示。

图2-5 if语句流程图

语句的执行过程:先计算布尔表达式,若布尔表达式的值为true,则程序执行语句1,否则就什么也不做,转去执行if语句的后续语句。

若有else部分,if语句的流程图如图2-6所示。

图2-6 if语句流程图

语句的执行过程是:先计算布尔表达式,若布尔表达式的值为true,则程序执行语句1,否则执行语句2,然后执行if语句的后续语句。但要注意的是:

①else子句不能作为语句单独使用,它必须是if语句的一部分,与if配对使用。

②语句1、语句2后一定要有分号“;”。

③语句1和语句2可以是复合语句。

2)if-else语句的嵌套

if-else语句中的内嵌的语句1或语句2又是if-else语句的情况称为if-else语句的嵌套。如:

程序从上往下依次判断布尔表达式的条件,一旦某个条件满足(即布尔表达式的值为true),就执行相关的语句,然后就不再判断其余的条件,直接转到if语句的后续语句去执行。Java规定,else总是与离它最近的if配对。如果需要,可以通过使用花括号“{}”来改变配对关系。

(2)逻辑运算符

逻辑运算符有4个,它们是:!(非)、&(与)&&(简洁与)、|(或)||(简洁或)、^(异或)。这些运算符操作的结果都要求是布尔型。

逻辑运算符的使用见表2-6。

表2-6 逻辑运算符使用规则

普通与&和简洁与&&的区别在于,如果运算符的第一个表达式的值为false,那么这是可以断定运算结果为false,因此简洁与&&将直接返回结果,而普通与&还将进行第二个表达式的求值。虽然二者返回的结果相同,但普通与&对第二个表达式进行了运算,将能够实现第二个表达式求值过程中所完成的附加功能。

普通或|和简洁或||的区别在于,如果运算符的第一个表达式的值为true,那么,这时可以断定运算结果为true,因此简洁或||将直接返回结果,而普通或|还将进行第二个表达式的求值。虽然二者返回的结果相同,但普通与|对第二个表达式进行了运算,将能够实现第二个表达式求值过程中所完成的附加功能。

代码示例

LeapYear.java

资讯4计算1~100累加和
资讯描述

设计程序,实现从1到100的累加和,并输出结果,效果如图2-7所示。

图2-7 1~100累加运行效果

资讯分析

①定义2个变量n和sum。

②确定n的范围为[1,100],sum初始值为0。

③重复执行sum=sum+n。

④n值加1。

相关知识

(1)while语句

while语句形式如下:

其中:

while是while语句的关键字;布尔表达式是循环条件;语句为循环体,当循环体为多个语句时,就构成了复合语句。

while语句执行的过程:首先判断布尔表达式的值,若布尔表达式的值为true,则执行循环体,然后再判断条件,直到布尔表达式的值为false,停止执行语句。使用while语句应注意以下两点:

①该语句是先判断后执行,若一开始条件就不成立,则不执行循环体。

②在循环体内一定要有改变条件的语句,否则是死循环。

while语句的流程图如图2-8所示。

图2-8 while语句的流程图

(2)do-while循环

do-while循环是在循环一次之后才进行终止条件的判断,do-while语句的语法形式如下:

do-while语句执行的过程为:先执行一次循环体中的语句,然后判断布尔表达式的值,如果布尔表达式的值为true,则继续执行循环体。do-while语句将不断地判断布尔表达式的值并执行循环体中的内容,直到布尔表达式的值为false为止。do-while语句的流程图如图2-9所示。

图2-9 do-while语句的流程图

do-while语句和while语句的不同之处:do-while语句总是先进入循环,执行一次循环语句之后,才会判断循环条件是否成立,再判定是否继续循环。而while语句是先判断条件,再判定是否进入循环,条件成立就进入循环,条件不成立就不进入循环。所以,do-while语句的循环体会至少执行一次;while循环可能一次循环体都不执行。

(3)关系运算符

关系运算符有==(等于)、!=(不等于)、<(小于)、<=(小于等于)、>(大于)、>=(大于等于)及instanceof(对象运算符)7种,一个关系运算符两边的数据类型应该一致,一个关系表达式的结果类型为布尔型,即关系式成立为true,不成立为false。

关系运算符的使用规则见表2-7。

表2-7 关系运算符使用规则

代码示例

WhileDem o.java JOq7Aw6cmp4hxwwb4OmtbGkLJYzScIhxznz5/6Gq0KK2Y0dktHo3gI3suqiebqBN

点击中间区域
呼出菜单
上一章
目录
下一章
×