版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JAVA 程序设计程序设计单元二 Java基本语法规则 v学习目标:学习目标: 掌握Java的合法标识符 掌握Java的基本数据类型 了解Java的程序控制语句 理解数学函数的使用 了解缓冲输入的使用 任务一任务一 数据类型转换数据类型转换 1任务二任务二 输出小于输出小于N的所有素数的所有素数2任务三任务三 猜数字小游戏猜数字小游戏3拓展任务拓展任务4任务一任务一 数据类型转换数据类型转换 v一、任务描述与任何其他程序语言一样,Java语言也有由一定的基本符号组成,这些基本符号构成了Java语言的标识符和关键字。同时,Java语言也是一种强类型语言,每个变量和表达式都有确定的数据类型,在对变
2、量进行赋值时要进行兼容性检查。本任务将编写一个简单的对不同数据类型变量进行赋值的程序。 v二、任务实施v1.编写源程序打开记事本,输入以下代码,将程序以“Numbers.java”为文件名保存到D:java下。本书所有程序,如无特别说明。均保存在这个默认的目录下。程序2.1 Numbers: public class Numbers public static void main (String args ) byte a=65;short b=135;int c=12580;long d=3145286;float f;double g=123456789.987654321;b=a;c=(
3、int)d;f=(float)g;System.out.print(a=+a+; ); System.out.println(b=+b+;); System.out.print(c=+c+; ); System.out.println(d=+d+;); System.out.println(f=+f+;); System.out.println(g=+g); v2. 编译、运行及调试v(1)编译和运行程序 v(2)调试错误 v 三、相关知识v 1.标识符和关键字 (1)字符集Java采用一种通用的国际标准字符集Unicode,而并非计算机系统常用的ASCII字符集。Unicode字符集能表示迄
4、今为止人类语言,包括中文。每个字符采用16位表示,共有65536个字符,包括以下几类字符:ASCII代码集里的英文字母“A”“Z”,“a”“z”以及数字“0”“9”;多国文字字符,包括汉字、日文、朝鲜文、希腊文等;常见的特殊符号字符集,如下划线、美元符等。常用ASCII字符的Unicode编码见附录A。 v(2)标识符标识符用于命名程序对象。例如,类名、变量名、方法名等。Java语言中的标识符需满足以下基本规则:以文字字符(包括英文、中文等),下划线,美元符开始的一个字符序列;除第一个字符外,后面可以跟文字字符,下划线,美元符和数字;严格区分大小写;标识符长度没有限制。 v(3)关键字与其他高
5、级程序语言一致,Java语言中也保留部分标识符,它们具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称为关键字,也称为保留字,完整的关键字信息参见附录B。关键字的作用主要有以下几个方面:描述程序结构、声明类、定义类的成员、简单数据类型,异常处理等。 【例2.1】区别合法与非法的标识符下列字符串都是合法的标识符:ABC、stu_1、$35、_t1、姓名而下列字符串都不能作为标识符:123a、%98、a+b、no#、for v2.数据类型vJava语言是强类型语言,数据类型可分为简单数据类型和复合数据类型两大类,如表2-1所示。 v(1)整形数据)整形数据vJava语言将整形数据按数值范
6、围的大小划分成byte,short,int,long四种类型。表2-2列出各类型在内存中所占的位数及其表示范围。 v整型常量有十进制、八进制和十六进制三种写法,如下所示:十进制整数,如123,789,0等。八进制整数,以数字符“0”开头,如0123表示十进制数83,011则表示十进制数9。十六进制整数,以0 x或0X开头,如0 x123表示十进制数291,0X12表示十进制数18。对于长整型long型常量,则要在数字后加L或1,如123L表示一个long型的长整数,它在内存中占64位存储空间。v需要注意的是Java不提供任何类型的无符号整数。 v【例2.2】判断下列语句的正误(1)short
7、a=1;(2)int i=1; i+=1.0;(3)int a; double b; b=a=1;v显然,(1)(2)皆不正确。1为int型常量,不能赋值给short型变量;1+1.0的结果为2.0,是一个double型的值,也不能赋值给int型变量i。(3)正确,int型的值可以赋值给double型变量b。 v(2)浮点数类型浮点数类型也称为实数类型、实型,有单精度和双精度两类,即float和double,表2-3列出这两种类型所占内存的位数及其表示范围。 v浮点型常量可由十进制数形式表示,即由数字和小数点组成,且必须有小数点,如0.123, 1.23, 123.0等。也可由科学计数法表示,
8、如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。vfloat型常量,必须在数字后加f或F,如1.23f或123E3F。double型常量,则既可以在数字后加d或D,如1.23d或123E3D,也可以直接书写实数。因此,实数默认为double类型。 v(3)字符型数据Java语言采用Unicode字符集,在内存中占两个字节即16位,其范围是065536。字符常量有普通字符常量和转义字符常量两种。普通字符常量是用单引号括起来的一个字符,如a、A、字等。对与被语言用作特定意义的字符,或者不能显式显示的字符,则需要转义字符来实现,如用n表示换行符。表2-4列出了Ja
9、va中的常见的转义字符标记方法。 在高级语言中,通常char型变量可与整型变量互换,Java语言也同样如此。需要注意的是在一般情况下,char类型的值可自然转换成int类型,而从int类型转换成char类型需要强制执行。正因为char可以自然转换成int型,在许多情况下可以对字符进行运算操作就好像它们是整数一样。例如,可以将2个字符相加,或者对一个字符变量值进行增量操作。 【例2.3】对char型数据的加法运算char a=a;int t;t=a+32;/char型变量a可以自动转换成int型进行运算a=(char)t;/int型变量需要强制转换为char型 以上代码可以简化为:a=(char
10、)(a+32);v(4)布尔型)布尔型布尔型数据只有两个值true(真)和false(假),通过Java提供的关系运算符和逻辑运算符,对关系表达式或逻辑表达式进行运算而得到其布尔值,一般用于逻辑测试。布尔型数据在机器中占1位,尤其需要注意的是,Java语言中的布尔值和数字0和1之间不能自由转换,即false和true并不对应于任何零或非零的整数值。 v四、任务小结本任务通过一个简单的数据类型转换的程序,讲解了Java语言基本数据类型的使用及其转换。事实上,Java语言在标识符、关键字以及数据类型方面与C或者C+语言非常相似。对有一定编程基础的读者来说,记住一些特殊的或者与其他语言不同的规则更为
11、重要。 任务二任务二 输出小于输出小于N的所有素数的所有素数 v一、任务描述找出小于N的所有素数是一个经典的程序控制范例。为了简化任务,我们让N的值固定(本任务中N=100),使用循环控制语句逐一测试小于N的所有正整数,并使用条件控制语句判断每一个数是否为素数,并将通过测试的数逐一输出。 v二、任务实施1.编写源程序寻找小于N的所有素数,则需要将从2到N-1的整数逐一测试,可由一个for循环控制。测试任意整数i是否为素,则需要测试从2到i/2的所有整数,是否能整除i。一旦整除,则i非素数。编写源程序如下,文件名为“PrimeOutput.java”。程序2.2 PrimeOutput: pub
12、lic class PrimeOutputpublic static void main(String args)int N,n,k;N=100;System.out.println(小于+N+的素数有:);for(n=2;nN;n+)/考察从2到N的所有整数for(k=2;kn/2)/从2到n/2都不能整除的n则是素数System.out.print(t+n);System.out.println();程序程序2.2 PrimeOutput:v2.编译和运行程序编译和运行程序编译源程序,并运行,结果如图2.3所示。我们注意到每一个素数都空了一定的距离,这就是源程序中输出的转义字符“t”的作用
13、,代表一个制表符,即按下一次tab键。 v3.改进程序改进程序程序2.2成功的输出了所有小于N(N=100)的素数,但仍有改进的空间。首先,测试从2到N-1的整数是否为素数是没有必要的,因为偶数中除2以外皆不可能为素数。其次,测试任意奇数i是否为素,只需测试从3到能否整除i即可。改进后的源程序如下: 程序程序2.3 PrimeOutput:public class PrimeOutputpublic static void main(String args)int N,n,k;N=100;System.out.println(小于+N+的素数有:);System.out.print(2);fo
14、r(n=3;nN;n+=2)/考察从3到N的所有整数for(k=3;kMath.sqrt(n)/所有k都不能整除的n则是素数System.out.print(t+n);System.out.println(); v 三、相关知识v 1.运算符与表达式运算符与表达式(1)运算符)运算符对各种类型的数据进行加工的过程称为运算,表示各种不同运算的符号称为运算符。Java语言的运算符与其他高级语言基本相同。若按操作数的数目来分,有一元运算符(如,等),二元运算符(如,等),三元运算符(如? :)。若按运算符的功能分,则可分为以下几类:算术运算符(+,-,*,/,%,+,-)关系运算符(,=,&,|,)
15、赋值运算符(=,+=,-=,*=,/=)条件运算符(? :)其他运算符v(2)表达式)表达式表达式是由操作数和运算符按一定的语法形式组成的符号序列。一个常量或一个变量名字是最简单的表达式,其值即该常量或变量的值;表达式的值还可以用作其他运算的操作数,形成更复杂的表达式。在对一个复杂表达式进行运算时,要按运算符的优先顺序从高到低进行,同级的运算符则按从左到右的方向进行。 v 2.程序控制语句程序控制语句Java程序通过控制语句来执行程序流,完成一定的任务。程序流是由若干个语句组成的,语句可以是单一的一条语句,如c=a+b,也可以是用大括号括起来的一个复合语句。Java中的控制语句有以下几类:分支
16、语句:if-else, switch循环语句:while, do-while, for跳转语句:break, continue, return异常处理语句:try-catch-finally, throw包处理语句:package,import注释语句:/,/* */, /* */Java流程控制结构与C或者C+基本相同。但仍然存在一些差异,如Java语言的break语句与continue语句有更多的用法,Java中没有goto语句来实现任意的跳转。而异常处理是Java所特有的,将在后面的单元详尽的介绍。 v3.数学函数数学函数在高级语言中,数学函数通常作为一个系统预定义的库函数,供用户使用。
17、例如在C语言中,使用数学函数只需在源程序的头上加上“#include ”即可。Java语言同样也提供了大量的库函数,通常称为类库或者程序包,同样包括了数学函数。常用数学函数如表2-6所示。 v【例2.4】计算公式程序程序2.4 MTest: public class MTest public static void main (String args ) double x=1.23,y=3.65;System.out.println(answer is +Math.sqrt(Math.pow(x,3)+ Math.pow(y,5);v四、任务小结本任务用Java语言实现了一个经典的寻找素数的程
18、序,在程序中使用了顺序、选择和循环三种结构。显然,总体上Java语言在程序控制语句方面与C或者其他高级程序语言并没有太大的区别。当然数学函数的使用成为了一种面向对象的方式。 任务三任务三 猜数字小游戏猜数字小游戏 v一、任务描述猜数字小游戏规则为:系统随机产生一个100以内的正整数,由用户猜测这个数并输入;系统通过比较随机数与用户的输入,反馈用户猜中了、猜大了或者猜小了;当且仅当猜中了这个数的时候,游戏结束。 v二、任务实施1.编写源程序编写源程序本任务要实现的功能从程序控制语句的角度来看并不复杂,但需要在程序运行的过程中用户与程序进行交互,。因此,需要用到全新的输入数据的方式。打开记事本,输
19、入以下代码,将程序保存为“NumberGuessing.java”。 import java.io.*;public class NumberGuessingpublic static void main(String args) throws IOExceptionint n=(int)(Math.random()*100);int g;doSystem.out.println(请输入猜测的数字); BufferedReader in =new BufferedReader(new InputStreamReader (System.in); /将输入包装成缓冲式输入 g= Integer.
20、parseInt(in.readLine();/将字符串型输入强制转换为整型if(g!=n)if(gn)System.out.println(大了);elseSystem.out.println(小了); System.out.println();while(g!=n);System.out.println(猜对了,数字为 +g); BufferedReader in =new BufferedReader(new InputStreamReader (System.in)v表示从标准输入设备System.in读取数据到一个字符输入流InputStreamReader,再将字符数据送入字符缓冲
21、流BufferedReader。g= Integer.parseInt(in.readLine();v表示从字符缓冲流中读取一行字符,形成字符串,并将其转换为int型数据。 v2.编译和运行程序编译和运行程序编译运行程序,根据提示信息输入数字,即可进行猜数字的小游戏。一次运行结果如图2.4所示。 v三、相关知识v1.字符串转换类型字符串转换类型从程序2.5显而易见,输入的数据通常会处理成为字符串的方式,然而在程序中,却可能要使用各种其他类型的数据。程序2.5中的Integer.parseInt(String s)将字符串型数据转为整型。所有同类方法如下表所示。 v 2.Java程序的基本结构程序的基本结构经过两个单元的学习,我们已经可以总结一些Java Applicat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度山地农业用地承包协议一
- 2024年度金融衍生品交易合同
- 2024年新型建筑施工总承包合同样本版B版
- 语言启蒙小班阅读与表达计划
- 2024年专业经理人雇佣协议标准版3篇
- 2024版房屋租赁合同及附属设施3篇
- 建筑拆除清理施工合同模板
- 工厂热水锅炉维护合同
- 舞厅装饰施工合同
- 2024年度建筑工程泥工分包合同8篇
- 九下初中语文24《十五从军征》公开课一等奖创新教学设计
- NBT 31021-2012 风力发电企业科技文件归档与整理规范
- 牛结核病诊断技术(γ-干扰素体外ELISA法)
- 2023年山东青岛幼儿师范高等专科学校招聘考试真题及答案
- 引水闸施工技术方案样本
- 移动电子商务基础与实务第3版全套教学课件
- 应急技术与管理职业生涯规划
- 胡桃夹综合征医学课件
- 学生宿舍安全隐患排查整治台账
- 设备维护人员的技能要求
- 药学生职业规划
评论
0/150
提交评论