Java程序设计(chap3).ppt_第1页
Java程序设计(chap3).ppt_第2页
Java程序设计(chap3).ppt_第3页
Java程序设计(chap3).ppt_第4页
Java程序设计(chap3).ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java程序设计基础 第3章Java控制结构 Java是真正的面向对象的语言 它的特点之一就是 软件复用 即采用类构件 使软件不经修改或稍加修改就可反复使用 从而提高软件的开发效率 降低维护成本 Java语言在进行面向对象程序设计时 仍严格遵循传统的结构化程序设计的原则 本章主要介绍了Java的三种基本控制结构以及分支和循环语句 最后介绍了数组 3 1三种基本控制结构 Java有三种基本控制结构 1 顺序结构 2 选择结构 分支 3 循环结构 3 2选择控制结构 1 if语句if语句是Java程序中最常见的分支控制结构 它是一种 二选一 的控制结构 即只给出两种可能的执行路径供选择 分支前的判断称为条件表达式 它是一个结果为布尔型量的关系或逻辑表达式 根据这个表达式的值是 真 或 假 来决定选择哪个分支来执行 if语句的语法形式如下 if 条件表达式 语句组 else语句组 3 2选择控制结构 if语句还有一种if else if嵌套形式 其语法形式如下 if 条件表达式 语句组 elseif 条件表达式2 语句组2 elseif 条件表达式 语句组 else语句组 3 2选择控制结构 例3 1 判断某一年是否为闰年 闰年的条件是符合下面二者之一 能被4整除 但不能被100整除 能被4整除 又能被400整除 3 2选择控制结构 1 方法1 采用一个逻辑表达式包含所有闰年条件 publicclassLeapYear publicstaticvoidmain Stringargs intyear 1989 if year 4 0 运行结果为 1989isnotaleapyear 3 2选择控制结构 2 switch语句switch语句是多分支的开关语句 它的一般格式如下 switch 表达式 case判断值 语句组 分支 case判断值 语句组 分支 case判断值n 语句组n 分支n default 语句组n 1 分支n 1 3 2选择控制结构 需要注意的是 switch语句的每一个case判断 都只是负责指明分支的入口点 而不负责分支出口点的指定 switch MyGrade case A MyScore 5 break case B MyScore 4 break case C MyScore 3 break default MyScore 0 3 2选择控制结构 例3 2 根据考试成绩的等级打印出百分制分数段 publicclassGradeLevel publicstaticvoidmain Stringargs System out println n firstsituation chargrade C switch grade case A System out println grade is85 100 break case B System out println grade is70 84 break case C System out println grade is60 69 break case D System out println grade is 60 break default System out println inputerror 运行该程序的结果为 Cis60 69 3 3循环控制结构 Java的循环语句共有三种 while语句 do while语句和for语句 它们的结构如图所示 3 3循环控制结构 1 while语句while语句的一般语法格式如下 while 条件表达式 循环体其中条件表达式的返回值为布尔型 循环体可以是单个语句 也可以是复合语句 3 3循环控制结构 下面是一个使用while语句计算阶乘的例子 longresult 1 while n 0 result n 3 3循环控制结构 2 do while语句do while语句的一般语法格式如下 do循环体while 条件表达式 3 3循环控制结构 下面是使用do while语句实现阶乘运算的例子 Longresult 1 do result n while n 0 3 3循环控制结构 3 for语句for语句是Java语言三个循环语句中功能较强 使用较广泛的一个 它的流程结构可参看图2 2 c for语句的一般语法格式如下 for 表达式1 表达式2 表达式3 循环体 3 3循环控制结构 下面是用for语句实现阶乘运算的例子 for longresult 1 n 0 n result n 3 3循环控制结构 循环中常用的跳转语句有两个 continue语句和break语句 1 continue语句continue语句必须用于循环结构中 continue语句有两种使用形式 1 不带标号的continue语句 它的作用是终止当前这一轮循环 跳过本轮循环剩余的语句 直接进入当前循环的下一轮 2 带标号的continue语句 其格式如下 continue标号名 带标号的continue语句使程序的流程直接转入标号标明的循环层次 3 3循环控制结构 下面查找1到20的素数的例子使用带标号的continue语句 FirstLoop for i 1 i 20 i if i 2 0 continueFirstLoop j 3 while j Math sqrt i if i j 0 continueFirstLoop j 2 System out println i 3 3循环控制结构 2 break语句break语句的作用是使程序的流程从一个语句块内部跳出来 如从switch语句的分支中跳出 或从循环体内部跳出 break语句同样分带标号和不带标号两种使用格式 带标号的break语句的使用格式是 break标号名 这个标号应该标志着某一个语句块 执行语句就从这个语句块中跳出来 流程进入该语句块后面的语句 不带标号的break语句从它所在的switch分支或最内层的循环体中跳转出来 执行分支或循环体后面的语句 3 3循环控制结构 例3 3 列出1到20之间的所有素数 程序代码如下 publicclassListPrime publicstaticvoidmain Stringargs intLowerLimt 1 intUpperLimt 20 inti j 定义循环变量FirstLoop for i LowerLimt i UpperLimt i if i 2 0 continueFirstLoop j 3 while j Math sqrt i if i j 0 continueFirstLoop j 2 System out println i 3 4数组 数组是常用的数据结构 相同数据类型的元素按一定顺序排列就构成了数组 数组的主要特点有三个 1 数组是相同数据类型的元素的集合 2 数组中的各元素是有先后顺序的 它们在内存中按照这个先后顺序连续存放在一起 3 每个数组元素用数组名和下标来唯一地确定 3 4数组 1 一维数组的定义Java的数组定义包括声明数组和分配内存空间两部分 声明数组的语法格式有两种 如下所示 数组元素类型数组名 数组元素类型 数组名 为数组元素分配内存空间 这时要用到运算符new 其语法格式如下 数组名 new数组元素类型 数组元素的个数 例 为一个整型数组分配了3个int型整数所占据的内存空间 intArray newint 3 3 4数组 通常 上述两部分可以合在一起 格式如下 数组元素类型数组名 new数组元素类型 数组元素的个数 例如 intintArray newint 3 3 4数组 2 一维数组元素的引用声明了一个数组 并用运算符new为它分配了内存空间后 就可以引用数组中的每一个元素了 数组元素的引用方式为 数组名 数组下标 3 一维数组的初始化对数组元素可以进行赋值 也可以在定义数组的同时进行初始化 例如 inta 1 2 3 4 5 数组的各个元素之间用逗号 分隔 系统会自动为数组分配一定空间 与C中不同 这时Java不要求数组为静态 static 3 4数组 4 一维数组程序举例 例3 4 数组元素的赋值和输出 publicclassArrayTest publicstaticvoidmain Stringargs inti inta newint 5 for i 0 i 0 i System out println a i a i 运行该程序的结果如下 a 4 4a 3 3a 2 2a 1 1a 0 0 3 4数组 例3 5 Fibonacci数列Fibonacci数列的定义为 F1 F2 1 Fn Fn 1 Fn 2 n 3 publicclassFibonacci publicstaticvoidmain Stringargs inti intf newint 10 f 0 f 1 1 for i 2 i 10 i f i f i 1 f i 2 for i 1 i 10 i System out println F i f i 1 3 4数组 运行该程序的结果为 F 1 1F 2 1F 3 2F 4 3F 5 5F 6 8F 7 13F 8 21F 9 34F 10 55 3 4数组 例3 6 冒泡法排序 从小到大 对相邻的两个元素进行比较 并把小的元素交换到前面 publicclassBubbleSort publicstaticvoidmain Stringargs inti j intintArray 30 1 9 70 25 intl intArray length for i 0 iintArray j intt intArray i intArray i intArray j intArray j t for i 0 i l i System out println intArray i 3 4数组 运行该程序的结果如下 91253070 3 4数组 1 二维数组的定义对二维数组来说 分配内存空间有下面两种方法 1 直接为每一维分配空间 如 inta newint 2 3 2 从最高维开始 分别为每一维分配空间 如 inta newint 2 a 0 newint 3 a 1 newint 3 3 4数组 2 二维数组元素的引用二维数组中每个元素的引用方式为 数组名 下标1 下标2 其中下标1 下标2可为整型常数或表达式 如a 2 3 等 与一维数组一样 每一维的下标都从0开始 3 二维数组的初始化与一维数组一样 二维数组的初始化也有两种方式 1 直接对每个元素进行赋值 2 在定义数组的同时进行初始化 如 inta 2 3 1 5 3 4 定义了一个3 2的数组 并对每个元素赋值 3 4数组 例3 7 矩阵相乘 两个矩阵Am n Bn l相乘得到Cm l 每个元素cij aik bk i 1 m n 1 n publicclassMatrixMultiply publicstaticvoidmain Stringargs inti j k inta newint 2 3 intb 1 5 2 8 5 9 10 3 2 7 5 18 intc newint 2 4 for i 0 i 2 i for j 0 j 3 j a i j i 1 j 2 for i 0 i 2 i for j 0 j 4 j c i j 0 for k 0 k 3 k c i j a i k b k j 3 4数组 System out println n MatrixA for i 0 i 2 i for j 0 j 3 j System out print a i j System out println System out println n MatrixB for i 0 i 3 i for j 0 j 4 j System out print b i j System out println System out println n MatrixC for i 0 i 2 i for j 0 j 4 j System out print c i j System out println 3 4数组 运行该程序的结果为 MatrixA 234468 MatrixB 15285910 327 5 18 MatrixC 256514 655013028 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论