收藏 分销(赏)

java教材全套电子整本书电子教案教学教程整套课件.ppt

上传人:人****来 文档编号:10251451 上传时间:2025-04-30 格式:PPT 页数:197 大小:2.33MB
下载 相关 举报
java教材全套电子整本书电子教案教学教程整套课件.ppt_第1页
第1页 / 共197页
java教材全套电子整本书电子教案教学教程整套课件.ppt_第2页
第2页 / 共197页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Java,程序设计基础与实践,第,1,章面向对象程序设计概述,学习目标,理解面向过程和面向对象程序设计思想的区别,掌握,Java,语言的基本特点,熟悉,Java,语言的各种开发平台,重点难点,面向对象程序设计思想的基本概念,Java,语言的基本特点,Java,语言开发平台的适用场合,1.1,程序设计思想的发展,面向过程的程序设计思想及语言,面向对象的程序设计思想及语言,1.1.1,面向过程的程序设计思想及语言,“面向过程”是一种以事件为中心的编程思想,即分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用。,面向过程是一种基础的方法,是自上向下步步求精,将一个复杂任务按照功能进行拆分,并逐层细化到便于理解和描述的程度,最终形成由若干独立模块组成的树状结构,所以面向过程最重要的是模块化的设计思想。,当程序规模不是很大时,面向过程的方法还会体现出一种优势,因为程序的流程很清楚,按照模块对应函数的方法可以很好地组织。,1.1.1,面向过程的程序设计思想及语言,最初问世的高级语言都属于面向过程的编程语言,用来实现程序的顺序、选择、循环这三种结构,比较著名的语言有,Pascal,、,Modula,、,Bliss,、,Euclid,、,Edison,、,Gypsy,、,CLU,、,XCY-2,、,Smalltalk,、,C,等。按照模块对应函数的方法可以很好地组织。,“面向过程”程序设计方法也有它的缺陷,主要表现在以下方面:(,1,)难以适应大型软件的设计(,2,)程序可重用性差,这些由结构化程序设计的特点所导致的缺陷,其本身无法克服,而越来越多的大型程序设计又要求必须克服它们,这最终导致了“面向对象”设计方法的产生。,1.1.2,面向过程对象的程序设计思想及语言,“面向对象”程序设计是一种解决问题时整体看待一个实体的思想。它是从现实世界中客观存在的事物出发来构造软件系统,强调直接以现实世界中的事物为中心来思考问题、认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。,简单地来说,就是将我们编程时独立考虑的相关的一些属性和一些操作都“打个包”,整体来对待,也就是将我们现实世界的事物看成属性(数据)和它本身的操作(方法)来整体对待。把数据和方法整合到一起就形成了类,类声明得到对象,编程时有效地利用类的继承性,会在很大程度上提高编程效率。,1.1.2,面向过程对象的程序设计思想及语言,与面向过程程序设计相比,面向对象程序设计有以下优点:,(,1,)数据抽象的概念可以在保持外部接口不变的情况下改变内部实现,从而减少甚至避免对外界的干扰。,(,2,)通过继承可大幅减少冗余的代码,并可以方便地扩展现有代码,提高编码效率,也减少了出错概率,降低了软件维护的难度。,(,3,)结合面向对象分析、设计,允许将问题中的对象直接映射到程序中,减少了软件开发过程中中间环节的转换过程。,(,4,)通过对对象的辨别、划分可以将软件系统分割为若干相对为独立的部分,在一定程度上便于控制软件复杂度。,(,5,)通过对象的聚合、联合,可以在保证封装与抽象的原则下实现对象的内在结构以及外在功能的扩充,从而实现对象由低到高的升级。,1.1.2,面向过程对象的程序设计思想及语言,面向对象程序设计语言与传统的面向过程编程语言的主要区别在于:传统过程性语言中把数据以及处理它们的子程序当作互不相关的成分分别处理,而面向对象语言则把这两者统一作为对象封装一起进行处理。,面向对象的思想是,G.Booch,在研究,Ada,软件开发方法时首先提出来的,它的一个重要概念就是类。,完全面向对象的语言有,Smalltalk,、,C+,、,Eiffel,、,Java,等。,1.2 Java,程序设计语言,Java,语言概述,Java,语言的三大开发体系,1.2.1 Java,语言概述,1995,年,5,月,23,日,,Sun,公司正式发布了,Java,产品。,Java,语言一经推出,就受到了业界的关注。,Netscape,公司第一个认可,Java,语言,并于,1995,年,8,月将,Java,解释器集成到它的主打产品,Navigator,浏览器中。接着,,Microsoft,公司在,Internet Explorer,浏览器中认可了,Java,语言。,Java,语言开始了自己的发展历程。,Java,语言是简单的、面向对象的语言,它具有分布式特点、安全性,又可以实现多线程,更主要的是它与平台无关,解决了困扰软件界多年的软件移植问题。,1.2.2 Java,语言的三大开发体系,Java,发展到今天,已从编程语言发展成为全球第一大通用开发平台。,Java,技术已被计算机行业主要公司所采纳。,1999,年,,Sun,公司推出了以,Java 2,平台为核心的,J2SE,、,J2EE,和,J2ME,三大平台。,Java 2 Platform,Standard Edition,(,J2SE,),Java 2 Platform,Enterprise Edition,(,J2EE,),Java 2 Platform,Micro Edition,(,J2ME,),简单地说,,J2SE,用于小型程序,,J2EE,用于大型程序,,J2ME,用于手机等程序。,J2SE,包含于,J2EE,中,,J2ME,包含了,J2SE,的核心类,但新添加了一些专用类。语言都是相同的,只是捆绑的类库,API,不同。也就是说,,J2SE,是基础;压缩一点,再增加一些,CLDC,等方面的特性就是,J2ME,;扩充一点,再增加一些,EJB,等企业应用方面的特性就是,J2EE,。,第,2,章初识,Java,程序设计,学习目标,了解,Java,开发环境,掌握,Java,语言的运行机制,了解,Java,虚拟机,重点难点,Java,环境变量的配置,Eclipse,的,使用,2.1,典型案例,【案例描述】,使用,Eclipse,编写程序,在控制台输出多行信息,运行结果如,下,所示。,【运行结果】,2.2 Java,开发环境的搭建,Java,虚拟机的简介,JDK,的下载与安装,配置系统环境变量,2.2.1 Java,虚拟机的简介,Java,虚拟机(,Java Virtual Machine,,,JVM,)为,Java,语言实现了平台无关性。,使用,Java,语言编写的程序需要经过,Java,编译器编译,这时会生成与平台无关的字节码(,*.class,文件)。这种字节码是不可执行的,必须使用,JVM,来解释执行。因此,我们无论在任何系统上编写,Java,程序,只要该平台安装了,JVM,,便可以运行。,2.2.2 JDK,的下载与安装,JDK,(,Java Development Kit,),即,Java,标准开发工具箱,是,Oracle,公司提供一套用于开发,Java,应用程序的开发工具,提供了编译、运行,Java,程序所需要的各种工具和资源,包括,Java,编译器、,Java,运行环境,以及常用,Java,类库等。,Java,运行环境也称为,JRE,(,Java Runtime Environment,),是运行,Java,程序的必要条件。可以说,JRE,里包括,JVM,。,2.2.2 JDK,的下载与安装,JDK,官方下载网址为:,archive-downloads-javase7-521261.html#jdk-7u75-oth-JPR,选择对应平台的,JDK,进行下载。,2.2.2 JDK,的下载与安装,JDK,的,安装,2.2.3,配置系统环境变量,JDK,安装完成需要进行环境变量的配置。,2.2.3,配置系统环境变量,在“变量名”文本框中输入“,PATH,”,在“变量值”文本框中输入“,C:Program FilesJavajdk1.7.0_75bin,”。,在“变量名”文本框中输入“,CLASSPATH,”,在“变量值”文本框中输入“,.;C:Program FilesJavajdk1.7.0_ 75libdt.jar;C:Program FilesJavajdk1.7.0_75libtools.jar,”。,Java,版本如果是,1.5,以上的只需要配置“,PATH,”环境变量即可,如果是,Java EE,仍需要配置,CLASSPATH,。,“变量值”为,Java,的,lib,文件夹中,tools.jar,与,dt.jar,的路径,但是千万注意必须在变量值的最前面加上“,.;,”,不然配置不会成功。它表示当前目录,用于识别当前目录的,Java,类。,tools.jar,与,dt.jar,两个路径之间添加“,;,”。,2.3 Eclipse,集成开发工具的使用,Java,的集成开发工具简介,Eclipse,的下载与安装,Eclipse,的基本使用,2.3.1,Java,的集成开发工具简介,对于初学者来说,使用,JDK,开发,Java,程序可以很快理解程序中代码之间的关系,有利于理解,Java,的设计思想,在学习中可以不使用任何,IDE,(集成开发环境)工具来学习编程,,Windows,平台可以使用记事本,,Linux,可以使用,VI,等工具。但是,倘若进行大规模的开发时,便会显得捉襟见肘,因此,,Java,的集成开发工具是我们未来进行,Java,学习中必不可少的工具。其中包括:,Eclipse,、,NetBeans,、,JBuilder,、,JDeveloper,等,IDE,工具。,2.3.2,Eclipse,的下载与安装,Eclipse,下载地址为,www.eclipse.org/downloads/,,选择符合系统版本的,Eclipse,下载。,下载后解压下载的文件。双击,文件夹中的,eclipse.exe,即可进行,Java,语言的开发。,2.3.3,Eclipse,的基本使用,运行,Eclipse,设置,Eclipse,工作空间路径,在工作区创建新项目,创建包、类,在工作界面编写代码,、保存、运行,第,3,章,Java,程序设计基础,重点,难点,Java变量的使用,Java,各种运算符及表达式的使用,Scanner,类的应用,学习目标,掌握标识符命名规则,了解,Java,关键字,掌握,Java,基本数据类型,掌握变量的定义及使用,掌握,Java,各种运算符及表达式,了解运算符的优先级,理解类型转换的含义,熟悉,String,及,Scanner,类的用法,3.1,典型案例,【案例描述】,使用,Eclipse,编写程序,从控制台输入一个学生三门课的成绩,计算并输出三门课的总成绩与平均成绩,运行结果如,下,图所示。,【运行结果】,3.2 Java,语言组成元素,Java,的标识符,Java,的关键字,Java,的分隔符,3.2.1 Java,的标识符,“标识符”是作为标志识别用的符号。,Java,语言中所有的变量、方法、类和对象等被处理的数据都是要有名称的,标识符就是用来给这些数据命名用的符号。,在,Java,语言中,用户自定义标识符必须遵守以下原则:,(,1,)标识符只能由数字、字母、下划线(,_,)或美元符号(,$,)构成,并且开头不能是数字。,(,2,)大写、小写字母被认为是两个不同的字符。,(,3,)没有长度限制,可以为标识符取任意长度的名字。,(,4,)不能和,Java,语言的关键字相同,但是它可以包含关键字,作为其名字的一部分。,例如:,合法,标识符:,a4,,,china,,,n_xy,,,Q7tz,,,$change,。,不,合法标识符:,2_a,,,#class,,,float,,,void,,,No-1,。,3.2.2 Java,的关键字,关键字是,Java,语言中具有专门含义和用途的特殊标识符,不能当作用户的标识符使用。,Java,中的常见关键字如下表。,abstract,boolean,break,byte,case,catch,char,class,continue,default,do,double,else,extends,final,finally,float,for,it,implements,import,instance,int,interface,long,native,new,null,package,private,protected,public,return,short,static,super,switch,synchronized,this,throw/throws,transient,try,void,volatile,while,assert,enum,3.2.3 Java,的分隔符,注释符可以提高程序的可读性,注释的内容一般起到提示编程思路或者说明程序功能的作用。注释符有,3,种形式。,“,/,注释内容”以“,/,”开始的该行后面的内容为注释,用于单行的注释,放在一行的开头或语句的结尾。,“,/*,注释内容,*/,”用于多行的注释。,“,/*,注释内容,*/,”用于多行的注释。这种注释被写入,javadoc,文档。,空白符,包括空格符、回车符、换行符和制表符等。使用时,多个空白符与一个空白符的作用相同。,普通,分隔符是有语法含义的,需要按照语法规定去使用。普通分隔符有以下,4,种。,大括号“,”用于定义复合语句和数组的初始化以及定义类体、方法体等。,分号“,;,”用于结束语句。,逗号“,”用于分隔变量、参数。,冒号“,:,”用于分隔标号和语句。,3.3,数据类型,Java,语言的数据类型可分为基本数据类型和引用数据类型,3.3.1,基本数据类型,3.3.2,常量与变量,常量就是在程序运行过程中其值保持不变的量,即不能被程序改变的量,也把它称为最终量。常量可分为数值常量和符号常量。,数值常量就是直接出现在程序语句中的常量值。数值常量也有数据类型,系统根据数值量识别,。,符号常量使用一个标识符来替代一个常量数值,其定义的一般格式为:,final,数据类型 常量名,=value,常量名,=value;,其中:,final,关键字,表示后边定义的是常量,即符号常量;,数据类型常量的数据类型,它可以是基本数据类型之一;,常量名标识符,它表示常数值,value,,在程序中凡是用到,value,值的地方均可用常量名标识符替代。,注意:在程序中,为了区分常量标识符和变量标识符,常量标识符一般全部使用大写字母。,3.3.2,常量与变量,变量是程序中的基本组成部分,在程序的运行过程中可以随时改变其存储单元的值。,变量,定义的一般格式如下,:,数据类型,变量名,=value,变量名,=value;,其中,:,数据类型,表示后边定义变量的数据类型;,变量,名一个标识符,应遵循标识符的命名规则。,可以,在说明变量的同时为变量赋初值。例如,:,int x1=5,x2=-8;,float f1=4.4f,f2=1.325f;,double d=75.2;,3.3.2,常量与变量,没有,初始值的变量是不能使用的,否则编译不能通过。声明变量时如果没有给变量赋初值,则可用赋值语句来赋初值。赋值语句格式如下:,变量,名,=,表达式,;,其,功能是:计算出“表达式”的值,将其赋值给左边的变量。,注意:右边必须是有确定值的表达式,左边只能是已经定义过的变量。,例如,:变量的声明与赋值。,int,a;/,变量的声明,a=70,;/,变量的赋值,char,c;/,变量的声明,c,=B;/,变量的赋值,变量的初始化是将变量的声明与赋值同时进行,即边定义边赋值。,例如,上面两组语句可以改写为:,int,a=70,;,/,对变量,a,初始化,char,c=B;/,对变量,c,初始化,3.3.2,常量与变量,变量,的作用域是指变量自定义的位置起,可以被使用的有效范围。在程序中不同的地方定义的变量具有不同的作用域。不同的变量,作用域也不同。,局部变量,是在方法内定义的变量,也称为自动(,Automatic,)变量。它的作用域为它所在方法或方法中的某块代码,离开该方法,局部变量被清除。,在成员方法内定义的变量是该成员方法的局部变量。在几个成员方法中使用相同的变量名,其所代表的是不同的变量。在一个确定的域中,变量名应该是唯一的。通常,一个域用大括号“,”和“,”来划定。局部变量在方法或方法的某一块代码中声明。,类,变量是在类中声明的,不是在类的方法中声明的,显然它的作用域是整个类。,方法,参数是将数据传递给方法的,它的作用域不能超越使用它的方法。,异常处理,参数是传递给异常处理代码的,其作用域就是异常处理部分。,3.3.3,数据类型转换,整型、实型、字符型数据可以混合运算。当程序中出现这种情况时,,,Java,语言要进行变量数据类型转换,使各类型一致后,再进行运算。,在,Java,语言里,类型转换有两种:自动类型转换和强制类型转换。,自动,类型转换发生在不同数据类型的混合运算时,由编译系统自动完成。一般情况下,系统自动将两个运算数中低级的运算数转换为和另一个较高级运算数的类型相一致的数据,然后再进行运算。自动转换遵循以下规则:,(,1,)若运算数的类型不同,则先转换成同一类型,然后进行运算。,(,2,)转换按数据长度增加的方向进行,以保证精度不降低,。,(,3,)所有的浮点型数据运算都是以双精度进行的,即使仅含单精度运算的表达式,也要先转换成,double,型,再进行运算。,(,4,),char,、,short,和,byte,型参与运算时,必须先转换成,int,型。,(,5,)在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度比左边量的数据类型长度长,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入。,3.3.3,数据类型转换,强制类型转换的功能是把变量或表达式的运算结果强制转换成类型说明符所表示的类型。其一般形式为:,(,类型说明符,),变量,或,(,类型说明符,)(,表达式,),(,类型说明符,),中的“,(),”称为强制类型转换运算符。,例如,:,(,double)a;/,把,a,转换为实型,(,int)(x+y);/,把,x+y,的结果转换为整型,注意:,(,1,)在使用强制转换时表达式必须加括号(单个变量可以不加括号)。例如:把,(int)(x+y),写成,(int)x+y,则表示将,x,转换成,int,型之后再与,y,相加。,(,2,)无论是强制转换还是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型和初值。,3.4,运算符与表达式,运算符与表达式是构成程序语句的要素。,Java,提供了多种运算符,分别用于不同运算的处理。表达式是由操作数和运算符按一定的语法形式组成的符号序列。一个常量或一个变量名是最简单的表达式。表达式是可以计算出结果的,一个表达式肯定有一个确定类型的值。,3.4.1,算术运算符及算术表达式,常用的算术运算符有:,+,(加),,-,(减),,*,(乘),,/,(除),,%,(求余),,+,(自加,1,),,-,(自减,1,),它们用于数值量的算术运算。,由算术运算符与操作数连接起来的式子称为算术表达式。例如:,x+6/y,,,i+,,,5*(a-8),,,(a+b)%10,等。,加、减、乘、除四则运算的运算规则和数学中的基本一致,。说明,:,(,1,)“,/,”:除法运算符左右两边的运算数均为整型时,结果也为整型,舍去小数部分。如果两个运算数中至少一个为实型,则结果为,double,型。,(,2,)“,%,”:求余运算用来求两数相除后的,余数,,如:,5%3,结果为,2,。,(,3,)“,+,”:加法运算符在字符串类型中也可以使用,其功能是实现字符串的,连接,如:,hello+java,的结果为,hellojava,。,(,4,)“,+,”“,-,”是单目运算符,参与运算的是单个变量,它分为前置运算和后置运算,如:,+i,,,i+,,,-i,,,i-,,其功能是使,i,自身加,1,或减,1,,即相当于,i=i+1,或,i=i-1,。前缀,+,、,-,与后缀,+,、,-,有区别。,+i,在使用,i,之前使,i,的值加,1,,即,i,的值先加,1,,后使用;,i+,在使用,i,之后使,i,的值加,1,,即,i,的值先使用,后加,1,。,3.4.2,关系运算符及关系表达式,关系运算符用于两个数据的比较运算,它们包括:,(大于),,=,(大于等于),,=z,,,(ab)!=(bc),。“关系”运算就是“比较”运算,它通常用来比较两个表达式的值,根据比较的结果得出布尔类型的值,true,或,false,。,例如:设,x=100,,,y=60,,则,(,1,),xy,的值为,true,。,(,2,),x=y,的值为,false,。,3.4.3,逻辑运算符及逻辑表达式,在程序的流程控制中,只需描述单一条件的,可以用关系表达式如“,x=1,”来实现,如果需要描述“,x=1,”且“,x10,”这样比较复杂的条件就要用到逻辑表达式了。,Java,的三种逻辑运算,符,&,逻辑与(相当于“并且”,),|,逻辑,或(相当于“或者”,),!,逻辑,非(相当于“否定”),运算规则,逻辑运算,符的操作数和结果都是布尔型。,(,1,),&,运算的一般形式是:,A&B,。其中,:,A,、,B,是逻辑或关系表达式。若,A,和,B,的值至少有一个为,false,,则,A&B,的值为,false,;若,A,和,B,的值均为,true,,则,A&B,的值为,true,。,(,2,),|,运算的一般形式是:,A|B,。其中,:,A,、,B,是逻辑或关系表达式。若,A,和,B,的值至少有一个为,true,,则,A|B,的值为,true,;若,A,和,B,的值均为,false,,则,A|B,的值为,false,。,(,3,),!,运算的一般形式是:,!A,。其中,:,A,是逻辑或关系表达式。若,A,的值为,true,,则,!A,的值为,false,,反之为,true,。,3.4.4,赋值运算符及赋值表达式,赋值运算符是最常用的运算符,用于把一个表达式的值赋给一个变量(或对象)。一般形式为:,变量,=,表达式,赋值表达式的值为赋值号右边变量或表达式的值,例如:,a=5,的值为,5,,,x=a+3,的值为,8,,,y=(a=3)+(b=8),的值为,11,。,Java,也提供了复合的赋值运算符,包括:,+=,,,-=,,,*=,,,/=,,,%=,。,例如,:,x,*=x+y;/,相当于,x=x*(x+y);,x,+=y;/,相当于,x=x+y;,3.4.5,其他运算符及表达式,条件运算符是三目运算符,由条件运算符组成的表达式的一般格式为:,逻辑表达式(或关系表达式)?表达式,1,:表达式,2,其,功能是:若逻辑表达式(或关系表达式)的值为,true,,整个式子的结果取表达式,1,的值,否则取表达式,2,的值,。条件,运算符,及条件,表达式常用于简单分支的取值处理,。,对象,运算符,(,1,)构造对象运算符(,new,),。,new,运算符主要用于创建类的对象,我们将在后边的章节作详细介绍。,(,2,)分量运算符(,.,),。,.,运算符主要用于获取类、对象的属性和方法。例如可使用,System,类对象的输出方法在屏幕上输出信息:,System.out.println(my first Java program);,。,字符,串连接运算符(,+,),在,表达式中,如果,+,号运算符左右两边的操作数至少一个为字符串,此时该,+,号运算符的作用是字符串连接符。,3.4.6,运算符的优先级,Java,运算符的优先次序,3.4.6,运算符的优先级,在上,表中优先级为,1,的运算符优先级最高,优先级,10,的运算符优先级最低。,结合性是指运算符结合的顺序,通常都是从左向右,也称为左结合。从右向左的运算符最典型的就是取负运算,例如,3+-4,,含义为,3,加,-4,,符号首先和运算符右侧的内容结合,也称为右结合。,注意区分正负号和加减号的区别。其实在实际的开发中,不需要去记忆运算符的优先级别,也不要刻意地使用运算符的优先级别,对于不清楚优先级的地方可以使用小括号,这样便于代码的阅读和维护。,第,4,章程序控制语句,重点,难点,多重,if,语句和,switch,语句的适用场合,嵌套,if,语句的使用,使用循环语句的嵌套编写程序,学习目标,掌握,if,条件结构,掌握,if,、,if-else,语句的格式,理解多重,if,语句和,switch,语句的异同点,掌握嵌套,if,语句的使用方法,理解循环结构的要素,掌握,while,、,do-while,、,for,语句的格式,掌握循环语句的嵌套,理解,break,和,continue,语句在程序中的使用场合,4.1,典型案例,【案例描述】,使用,Eclipse,编写程序,将,1,20,这,20,个数按照每行,5,个顺序输出,运行结果如,下,图所示。,【运行结果】,4.2,顺序结构,顺序结构是最简单、最基本的程序控制结构,程序中的语句将自顶向下逐条执行,即按语句的排列顺序从第一条顺序执行到最后一条,且每个语句只执行一遍,无需专门的控制语句。,4.3,选择结构,顺序结构的程序虽然能解决数据的输入、计算和输出等功能,但是不可能处理复杂的问题。在数据处理过程中,往往需要根据不同的情况,完成不同的处理。例如,任意输入两个数,a,和,b,,输出较大的数。解决这样的问题,就需要让计算机按照给定的条件来进行判断,并且根据判断的结果选择相应的处理方式。实际上,这种处理方式就是要求程序本身具有一定的逻辑判断能力和选择能力。,选择结构的执行就是根据一定的条件选择执行路径,而不是严格按照语句的物理顺序来执行。类似这种情况的处理,要使用,if,条件语句来实现。,4.3.1,单一,if,语句,单一,if,语句的格式如下:,if,(,表达式,),语句,;,功能:若表达式的值为,true,,则执行语句,否则跳过该语句,。其中,,语句可以是单条语句或复合语句(用大括号“,”括起的多条语句)。,4.3.2 if-else,语句,if-else,语句的格式如下:,if,(,表达式,),语句,1;,else,语句,2;,功能:如果表达式的值为,true,,执行语句,1,,否则执行语句,2,。,4.3.3,多重,if-else,语句,多重,if-else,语句的格式如下:,if,(,表达式,1),语句,1;,else,if(,表达式,2),语句,2;,else,if(,表达式,n-1),语句,n-1;,else,语句,n;,这是一种多选一的多分支结构,其功能是:如果表达式,i,(,i=1,n-1,)的值为,true,,则执行语句,i,;如果所有表达式的值均为,false,,则执行语句,n,。,4.3.4 switch,语句,多重,if-else,语句是实现多分支选择的语句。,Java,还提供了一种,switch,语句来实现“多选一”的功能。,switch,语句的一般格式如下:,switch,(,表达式,),case,常量,1:,语句组,1;break;,case,常量,2:,语句组,2;break;,case,常量,n-1:,语句组,n-1;break;,case,常量,n:,语句组,n;break;,default,:,语句组,n+1;,4.3.4 switch,语句,表达式的值必须是,int,型或,char,型。,常量,i,(,i=1,n,)是对应于表达式类型的常量值。各常量的值不能相同。,语句组,i,(,i=1,n+1,)可以是空语句,也可是一个或多个语句。,break,的作用是结束本,switch,结构语句的执行,跳到该结构外的下一个语句执行。,先计算表达式的值,根据该值查找与之匹配的常量,i,,若找到,则执行语句组,i,,遇到,break,语句后跳出,switch,结构,否则继续依次执行下边的语句组。如果没有查找到与计算结果相匹配的常量,i,,则执行,default,关键字后的语句组,n+1,。,4.3.5,嵌套,if,语句,多重,if,语句是用于多个并列条件选择的情况。如果多个条件是递进关系,可以在,if,语句或,if-else,语句的“语句,1,”或“语句,2,”中再使用,if,语句或,if-else,语句,这种设计方法称为嵌套。,嵌套,if,语句,格式如下:,if(,表达式,),if,语句,;,或者,if(,表达式,),if-else,语句,;,else,if-else,语句,;,4.4,循环结构,循环是我们周围存在的最普遍的现象之一,许多复杂的问题往往需要做大量雷同的重复处理。可见,循环结构是程序设计中的一个常用结构。,Java,语言提供了,3,种循环语句来实现循环结构的程序设计,分别为,for,循环语句、,while,循环语句和,do-while,循环语句。,一般情况下,,for,循环用于处理确定次数的循环,,while,和,do-while,循环用于处理不确定次数的循环。,4.4.1 while,循环语句,while,循环的一般格式:,while,(,表达式,)/,表达式为循环条件,语句,组,;,/,循环体,表达式,可以是关系表达式或逻辑表达式,它产生一个布尔值,。语句,组是循环体,是要重复执行的语句序列。,当,表达式的值是,true,时,重复执行循环体(语句组)操作,当表达式的值是,false,时,结束循环操作,执行,while,循环体下边的程序语句。,4.4.2 do-while,循环语句,do-while,循环的一般格式:,do,语句,组,;/,循环体,while(,表达式,);,w,hile,与,do-while,之间,的差别在于:,while,循环先判断表达式的值,如果表达式的值为,true,则执行循环体,否则跳过循环体的执行,因此如果一开始布尔表达式的值就为,false,,那么循环体一次也不被执行;,do-while,循环是先执行一次循环体,然后再判断表达式的值,若其值为,true,则再次执行循环体,否则执行后边的程序语句。无论布尔表达式的值如何,,do-while,循环都至少会执行一次循环体语句。,4.4.3 for,循环语句,for,循环语句的一般格式如下:,for,(,表达式,1;,表达式,2;,表达式,3),语句,组,;/,循环体,表达式,1,一般用于设置循环控制变量的初始值,例如:,int i=1;,。,表达式,2,一般是关系表达式或逻辑表达式,用于确定是否继续进行循环体语句的执行。例如:,i100;,。,表达式,3,一般用于循环控制变量的增减值操作。例如:,i,+;,。,语句,组是要被重复执行的语句,称为循环体。语句组可以是空语句、单个语句或多个语句。,4.4.4,循环语句的嵌套,如果一个循环语句的循环体中又包含一个循环语句,则称之为循环语句的嵌套,也称为多重循环。前面学习的三种循环语句,每一种语句的循环体部分都可以再包含循环语句,所以多重循环很容易实现。循环的嵌套,按照嵌套层数,分别称为二重循环、三重循环等。处于内部的循环称为内循环,处于外部的循环称为外循环。,执行过程以二重循环为例。从最外层开始执行,外循环变量每取一个值,就判断一次循环条件,如果为真,内循环就执行一次循环体,内循环结束后,再回到外循环,外循环变量取下一个值,如果循环条件依然为真,内循环又开始执行一次循环体。依此类推,直到外循环结束。,第,5,章数组与字符串,学习目标,掌握一维数组的声明、分配空间的方法,熟练使用一维数组解决实际问题,掌握二维数组的声明、分配空间和使用方法,熟悉二维数组输入,/,输出方法,掌握字符串常量对象的创建和使用方法,掌握字符串的一些常用方法,并能熟练运用这些方法解决相关问题,理解,String,类和,StringBuffer,类的区别,并能进行实际应用,重点难点,一维数组的实际应用,String,类和,StringBuffer,类的区别及使用,5.1,典型案例,【案例描述】,使用,Eclipse,编写程序,从控制台输入,10,个学生,Java,课程的成绩,计算并输出这,10,个学生的平均成绩及最高分与最低分,运行结果如,下,图所示。,【运行结果】,5.2,一维数组,数组是一种构造类型。数组中的每个元素都具有相同的数据类型,且可以用数组名和下标来唯一地确定。数组是有序数据的集合。和其他变量一样,数组必须先声明定义,然后赋值,最后再使用。,5.2.1,一维数组的声明,一维数组声明的一般格式如下:,数据类型 数组名,;,或,数据类型,数组名,;,数据类型,说明数组元素的类型,可以是,Java,中任意的数据类型。,数组,名是一个标识符,应遵照标识符的命名规则。,例如:,int,a;/,声明一个整型的一维数组,a,若,数组的类型一样,则可以一次定义多个数组,。,例如:,int,x,y,z;,Java,语言在对数组进行声明时,并不会为数组分配存储空间。因此在对数组进行声明时,是不允许指明数组长度的,而且声明后的数组必须通过分配存储空间来创建数组对象后,才可以访问数组中的元素。,5.2.2,一维数组的初始化,一般情况下,使用,new,运算符定义数组大小,格式如下:,数组,名,=new,数据类型,size;,size,指数组的长度,。,例如:,int,array1;/,声明一个整型数组,array1,=new int5;/,定义数组可以存放,5,个整型元素,此时,,整型数组,array1,的长度为,5,,即包含,5,个整型数组元素:,array10,、,array11,、,array12,、,array13,、,array14,。每一个元素都可以存放一个整型的数据,相当于,5,个整型变量。,当用,new,关键字为一个数组分配内存空间后,可以为每个数组元素赋值,例如,:,array10,=1;/,数组下标从,0,开始,array11,=,2;,array12,=,3;,array13,=,4;,array14,=5;,通常,也可以采用如下方式为数组元素赋初值并由初值的个数确定数组的大小,。,int,array1=1,2,3,4,5;,上述,语句声明并创建了数组,array1,,并且为数组中的每个元素赋值,使得,array10=1,,,array11=2,,,array12=3,,,array13=4,,,array14=5,。系统将根据所给初值的个数计算出数组的长度并分配相应的存储空间。,5.2.3,访问一维数组,数组元素的使用,为,数组分配好内存空间后,就可以像普通数据类型的变量一样在程序中使用数组元素,即可以在任何允许使用变量的地方使用数组元素,。,数组,元素的访问方式为:,数组,名,下标,;,下标,可以为整型常量或表达式,下标值从,0,开始。,数组,是作为对象处理的,它具有长度(,length,)属性,用于指明数组中包含的元素个数。因此数组的下标从,0,开始到,length-1,结束。如果在引用数组元素时,下标超出了此范围,系统将产生数组下标越界异常(,ArrayIndexOutOfBoundsException,)。,5.2.3,访问一维数组,数组的使用,-,当数组创建后,数组名就存储了数组存储空间的起始地址,也可以使用该数组名给其他同类数组名赋值,这样使得多个数组共享一组内存空间和数据。,5.3,多维数组,在,Java,语言中,多维数组是建立在一维数组基础之上的,以二维数组为例,可以把二维数组的每一行看作是一个一维数组,因此可以把二维数组看作是以一维数组为元素的数组。同样也可以把三维数组看作二维数组的数组,依此类推。在通常的应用中一维、二维数组最为常见,多维数组只应用于特殊的场合。,5.3.1,二维数组的声明,声明二维数组的一般格式如下:,数据类型,数组名,;,或,数据类型,数组名,;,数据类型,可以是,Java,中的任意数据类型。例如:,int,a;,/,声明一个整型的二维数组,a,double,b;/,声明一个实型的二维数组,b,注意:和一维数组类似,二维
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服