版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java基础第二章Java程序设计与应用新工科建设之路·计算机类规划教材01基础语法PARTONE基础语法标识符程序员对程序中的变量、函数等加以命名时使用的命名记号称为标识符(identifier)。在Java中,标识符是以字母、下画线(_)、美元符($)开始的一个字符序列,后面可以跟字母、下画线、美元符、数字。Java同C语言一样,是对大小写敏感的语言,即标识符中的字母区分大小写。identifier和Identifier表示两个不同的标识符。基础语法关键字Java的关键字对Java的编译器有专门的意义和用途,不能作为一般的标识符使用。这些标识符称为保留字(reservedword),也称为关键字,下面列出了Java中的所有保留字。02数据类型PARTTWO数据类型Java的数据类型分为基本数据类型和引用数据类型两大类,如图2-1所示。数据类型Java提供了8种基本数据类型。包括6种数字类型(4种整型、2种浮点型)。1种字符型和1种布尔型。数据类型01整型整型在计算机中占用空间的长度和取值范围如表2-1所示。在Java中,共有4种整型,使用关键字byte、short、int、long来声明不同的整型。数据类型short型short型称为短整型,是有符号的16位。它的取值范围是-215~215-1。long型long型称为长整型,是有符号的64位,表示的存储范围是-263〜263-1。byte型byte型称为字节型,是有符号的8位。它的取值范围是-27~27-1。int型int型称为整型,是最常用的整型,是有符号的32位,它的取值范围是-231〜231-1。数据类型02浮点型浮点型简单来说就是数学中的小数,严格来说是实数。在Java中共有两种浮点型,一种是单精度的float型,另一种是双精度的double型,表2-2列出了两种浮点型存储在计算机中占用的空间大小。数据类型03字符型在Java中,存储单个字符的数据类型是char,釆用的是16位Unicode字符。Unicode字符实际上是用无符号16位整数表示的,它的取值范围是0〜65535。所以,字符型实际上是一个16位的无符号整数,因此也可以把数字赋值给它,如charc=12。数据类型Java提供转义字符,以反斜杠(\)开头,将其后的字符转变为另外的含义。Java常见的转义字符如表2-3所示。数据类型04布尔型布尔型也称为逻辑型,使用关键字boolean来声明。它只有2个值:true和false,用来表示两个状态。需要注意的是,与C语言不一样,Java不能用1或0这类整型数据来表示布尔型的值。数据类型类型转换是指不同数据类型之间的转换。如int型转为long型,整型转为浮点型等。类型转换分为自动类型转换和强制类型转换。数据类型自动类型转换自动类型转换也叫隐式转换,因为在计算机中不同的数据类型是无法进行运算的。所以当一个表达式中出现不同的数据类型时,Java编译器会做适当的类型转换,这种转换就是自动类型转换。数据类型强制类型转换强制类型转换也称为显式类型转换,表示两种数据类型之间的转换必须要进行的声明。例如。03Java中的运算符PARTTHREEJava中的运算符四则运算是数学运算中最常见的,Java定义了算术运算符来处理四则运算,如表2-4所示。Java中的运算符算术运算符的操作数必须是数字型。算术运算符不能用在布尔型上,但是可以用在char型上,因为实质上在Java中,char型是int型的一个子集。基本算术运算符(加、减、乘、除)可以对所有的数字型的操作数进行操作。减运算也可以表示单个操作数的负号。需要注意的是,对整数进行“/”运算时,所有的余数都要被舍去。Java中的运算符赋值运算符的作用是将一个值赋给一个变量,运算顺序为从右到左。赋值运算符包括=、+=、-=、*=、/=、%=。在Java中可以通过一条赋值语句对多个变量进行赋值,例如:Java中的运算符+=、-=、*=、/=、%=这类符号表示将等号左边的变量值与等号右边的变量值做相应的运算后,再赋值给等号左边的变量。例如:以上代码相当于a=a+2,然后执行a=a*3,最后结果是a=18。Java中的运算符关系运算符决定值和值之间的关系,判断数据是否相等及排列次序。关系运算符及其含义如表2-5所示。Java中的运算符关系运算符的作用是比较运算数的大小关系,产生的结果是布尔型,即true或false。关系运算符常常用在迁控制语句和各种循环语句的表达式中。Java中的任何数据类型,包括整型、浮点型、字符型、布尔型都可以用“==”来比较是否相等,用“!=”来比较是否不等。Java中的运算符Java中的逻辑运算符用于对布尔型的数据进行操作,其结果仍然是一个布尔型数据。Java中的逻辑运算符及其含义如表2-6所示。Java中的运算符需要注意&&与&的区别,在进行逻辑与操作时,“&&”是短路与运算符,即在运算时只要判定左边表达式为假,就可以立即得出结论,不再计算右边表达式。“&”在表达式判定上和“&&”相同,唯一不同的是它总是计算两边表达式的值。“||”和“|”的区别与“&&”和“&”的区别类似。Java中的运算符位运算符是将两个操作数转换成二进制数,然后对相应的位进行按位运算,如表2-7所示。Java中的运算符按位非对其每一位操作数的每一位取反。&比较两个操作数相同位置上的数,如果都为1,则将结果置为1,其他情况置为O。丨比较两个操作数相同位置上的数,如果其中一个变量的位是1,则将结果置为1,其他情况置为0。仅当其中一个变量的位是1时,^将结果位设置为1,其他情况置为0。右移运算符>>可以使指定值的所有位向右移规定的次数。Java中的运算符在对一些赋值的表达式进行运算时,要明确表达式运算符参与运算的先后顺序,称为运算符的优先级。各运算符按照如表2-8所示的优先级进行运算。优先级高的运算符先运算,优先级低的运算符后运算,同一级别的运算符按照从左到右的次序进行计算。Java中的运算符04流程控制PARTFOUR流程控制程序语言使用控制语句来控制程序的流程,从而完成程序状态的改变。Java的程序控制语句分为顺序结构、选择结构和循环结构。一个程序的结构只可能由这三种情况构成,可以同时包括其中的一种、两种或三种。流程控制程序的三种基本结构如图2-2所示。流程控制在程序执行过程中,程序语句大多是按照其书写顺序依次执行的,这称为顺序结构。但是,为了能处理某些复杂问题,程序也需要根据不同条件选择执行不同的程序段,或者重复执行某些特定的程序段,前者称为分支结构,后者称为循环结构。流程控制顺序结构顺序结构是指执行流程按照代码的先后顺序,程序从上到下执行。它是流程控制语句中最简单的一类语句,前面示例中的语句都是顺序语句,执行时会逐行地从上到下顺序执行。流程控制选择结构Java支持两种选择语句:if语句和switch语句。这些结构能够根据表达式的值,选择执行程序的某一部分。流程控制01if语句if语句是Java中的条件分支语句,它能将程序的执行路径分为两条。if语句的完整格式如下。流程控制说明:若条件表达式的值为true,则执行功能代码1语句块。否则执行功能代码2语句块,双分支if语句如图2-3所示。流程控制02switch语句switch语句是Java的多路分支语句,它与case关键字一起使用,提供了多分支的选择结构。因此,它提供了一个比一系列if-else-if语句更好的选择。switch语句的通用语法格式如下流程控制switch语句如图2-6所示。流程控制其执行过程为:首先计算switch语句中表达式的值,再将该值与case后常量表达式的值相比较。若相等,则执行case后的语句,直到遇到break语句或switch结构的末尾为止。若表达式的值与所有case常量表达式的值都不匹配,则执行default后的语句。流程控制表达式只能为byte、short、int、char或String类型。其中String型是在JDK7版本中增加的。每个case语句后的值value必须是与表达式类型兼容的特定的一个常量(它必须为一个常量,而不是变量)。重复的case值是不允许的。流程控制循环结构循环结构是程序设计中的重要结构。它的作用是反复执行一段代码,直到满足终止循环的条件为止。一个完整的循环结构包括3部分内容。流程控制010302初始化部分用来设置循环的初始条件,给变量赋值等。循环体部分反复执行的一段代码。终止部分通常是一个布尔表达式,对该表达式求值,判断是否循环或终止循环。流程控制while循环和do-while循环当无法确定一个循环要执行多少次时,有两种循环结构可以选择,while循环和do-while循环。while循环只有在表达式为真时才执行循环体。while语句的语法格式为:流程控制while循环和do-while循环条件表达式可以是任何布尔表达式。只要条件表达式为真,循环体就被执行。当条件表达式为假时,程序控制就跳转到循环后面紧跟的语句执行。while循环如图2-7所示。流程控制while循环和do-while循环循环的执行过程如下。(1)求解表达式。若表达式的值为true,则进入循环体,转向(2);否则结束循环,转向(3)。(2)执行循环体语句,然后转向(1)。(3)执行while语句块后面的语句。流程控制do-while循环程序结构如下所示:do-while循环的流程图如图2-8所示,即先执行循环体,再计算表达式,根据表达式的结果来确定是否继续执行循环体。do-while语句的循环体至少执行一次。流程控制do-while循环的执行过程如下。(1)首先执行循环体语句,完毕后进入(2)。(2)计算表达式,如果其值为true,转向(1)否则结束循环,转向(3)。(3)执行do-while后面的语句。流程控制for循环for循环的格式如下:for循环主要包括3部分,即初始操作、条件表达式和迭代表达式。流程控制for循环在通常情况下,表达式1用于声明循环变量,对一组变量进行初始化或赋值。该语句在第一次循环开始之前被执行,并只执行一次。表达式1可以是被逗号分隔开的多个赋值表达式。流程控制for循环表达式2是条件表达式,进入循环体之前都要进行表达式2的计算,若其值为true,则执行循环体语句,若其值为false,则跳出循环,执行for语句块后面的语句。每次循环体语句执行完后,都会再次进行条件表达式的运算。表达式3在每次循环体执行完后被执行,主要用于修改控制循环变量的值,从而控制整个循环的次数。流程控制for循环的控制流程如图2-9所示。流程控制该语句的执行过程如下。(1)先执行表达式1,用于初始化变量。(2)执行表达式2,若其值为trae,进入循环,转向(3),否则结束循环,转向(5)。(3)执行循环体,转向(4)。(4)执行表达式3,改变循环变量的值,转向(2)。(5)结束循环,执行for语句块后面的语句。流程控制跳转语句在前面介绍的三种循环结构中,都是以某个表达式的值作为循环结束条件的。但在程序设计中,有时也希望能够直接控制程序流程的转移,这时就需要用到跳转语句。在Java中,跳转语句包括break语句和continue语句,这些语句的作用是改变程序的执行顺序,跳转到程序的其他部分。流程控制break语句break语句有2种作用:(1)在switch语句中,通过break语句终止一个语句序列。(2)在循环体中,break语句能被用来退出循环。在循环进行中,当到达某种条件时,可以使用break语句退出循环体。流程控制continue语句continue语句只能用在循环结构中。当在循环结构中遇到continue语句时,则跳过continue后的其他语句结束本次循环,并转去检测循环控制条件,以决定是否进行下一次循环。流程控制continue语句break语句与continue语句的区别在于。break语句直接终止整个循环。而continue语句则只终止本次循环,至于是否继续下一次循环,还要根据循环控制条件的检测结果而定。05数组PARTFIVE数组在Java中,数组是一种最简单的复合数据类型之一。数组是有序数据的集合,数组中的每个元素都具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。数组有一维数组和多维数组。数组数组的概念对于有些问题的求解需要定义多个相同类型的变量,表示一组相同意义的值。数组是指一组相同类型的数据的集合,数组中的每个数据称为元素。数组可以存放任意类型的元素,包括基本数据类型和引用数据类型。同一个数组里只能存放同一类型的数据。数组01数组的声明数组的声明格式有如下两种:上面两行分别声明了一个数组名为a的整型数组和一个数组名为b的字符型数组。Java允许将[]放在数组名字的前面和后面。上面的语句只是对a和b两个数组的定义,Java并没有为它们分配内存,因此在口中不能指定数组的长度,这是与C语言不同的地方。数组02数组的创建数组声明完成后,需要创建才可以使用。创建数组就是指定这个数组可以存放多少个元素,并分配给相应大小的内存空间。因此,数组有两种初始化方法:静态初始化和动态初始化。Java中可以使用new关键字来给数组分配空间,格式如下:数组03初始化静态初始化:数组在声明的同时进行赋值。例如,定义一个具有3个元素的整型数组,同时为每个元素赋初始值。方法如下:数组03初始化动态初始化:数组在声明时,使用new关键字开辟空间,指定数组的长度,再为每个元素赋值。例如,定义一个具有3个元素的整型数组,同时为每个元素赋初始值。方法如下:数组04数组的使用一维数组通过下标索引来访问相应的元素,如a[0]和a[l]等。需要注意的是,数组下标是从0开始的,因此数组下标的索引比数组的长度少1个。对于一维数组,可以通过length的值获得数组的长度,例如:这段代码运行的结果就是5。数组二维数组在Java中,多维数组被视为数组的数组。二维数组是由一个特殊的一维数组构成的,该一维数组的每一个元素又是一个一维数组。数组01二维数组声明二维数组声明的一般形式为:其中,常量表达式1表示第一维下标(行下标)的长度,常量表达式2表示第二维下标(列下标)的长度。例如:数组01二维数组声明表示定义数组a为3行4列的整型数组,共有12个元素。定义数组b为4行5列的浮点型数组,共有20个元素。二维数组的引用形式为:数组02初始化二维数组初始化也是在类型说明时给各下标变量赋初值。二维数组可按行分段赋值,也可按行连续赋值。例如,对数组a[3][4]进行如下操作。(1)按行分段全部赋值inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
(2)按行连续赋值inta[3][4]={l,2,3,4,5,6,7,8,9,10,ll,12};上述两种赋值的结果是完全相同的,但按行分段赋值的方式显得更直观、更方便。数组03二维数组举例【例2-10】输出杨辉三角的前6行数据。数组03二维数组举例程序运行结果如图2-11所示。数组03二维数组举例杨辉三角的输出是一个左下三角的数据,每行输出到主对角线(行下标和列下标的值相等)数据时结束。对于杨辉三角,可以用二维数组来解决。首先,它每行第一列位置上的数都是1,第n行第n列(即主对角线)位置上的数也是1,除此之外,每个数等于它上一行正对的元素与前一个元素的和。06上机实验PARTSIX上机实验1.实验目的(1)熟悉Java的基本语法。(2)学习编写简单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 会计专业考试经济法基础初级备考难点精析(2026年)
- 水电维修现场施工协议
- 市场占有率提升与监控协议
- 企业价值评估服务合同范本
- Unit 7 A Day to Remember (Period 1)Section A (1a-Pronunciation) (4)同步练2025-2026学年人教版英语七年级下册
- 2026年人事招聘人员测试题及答案
- 2026年柜姐应聘测试题及答案
- 2026年睡觉姿势看测试题及答案
- 2026年工作分析测试题及答案
- 2026年查漏补缺测试题及答案
- 国家职业标准 4-07-03-02 劳动关系协调师 (2025年版)
- 第一单元 分数加减法单元测试(含答案)北师大版五年级下册数学
- DB50-T 1667-2024 犬只收容救助场所防疫管理技术规范
- 配电箱巡查记录表
- 2024秋期国家开放大学《法律文书》一平台在线形考(第一至五次考核形考任务)试题及答案
- GB/T 24067-2024温室气体产品碳足迹量化要求和指南
- DL∕T 5759-2017 配电系统电气装置安装工程施工及验收规范
- 医疗器械临床试验伦理要点
- 国开电大本科《管理英语3》机考总题库
- 护理查房支气管扩张伴咯血护理查房
- 石厂碎石加工系统运行管理制度
评论
0/150
提交评论