《java基本结构程序》由会员分享,可在线阅读,更多相关《java基本结构程序(22页珍藏版)》请在金锄头文库上搜索。
1、Java面向对象 程序设计基础教程,河南大学计算机与信息工程学院,目录,第1章 Java语言概述 第2章 Java基本语法规则 第3章 Java中的面向对象技术 第4章 Java基本结构程序 第5章 Java基本类 第6章 图形用户界面 第7章 异常处理 第8章 多线程 第9章 Java Applet程序 第10章 输入输出流与文件处理 第11章 Java网络编程 第12章 数据库应用,第四章 Java基本结构程序,4.1 流程控制语句 4.2 递归,4.1 流程控制语句,顺序结构,4.1.1 顺序结构,不改变程序执行流程,按书写顺序依次顺序执行。 表达式语句 格式:表达式; 空语句 ; 产生
2、是为了语法需要,增加程序的容错性。 复合语句 用大括号括起来的语句序列,4.1.2 分支语句,1.if语句 if语句的语法格式 if ( 布尔表达式 ) 语句1; else 语句2; (else子句可选,与最近的if匹配),必须是布尔类型而不能是数值类型,如有多条语句,需要将语句序列放在大括号中,4.1.2 分支语句,复合条件 if (n=100 & n=100) if (n=999) 语句1; else 语句2;,问题1:else与谁匹配? 与最近的if匹配 问题2 :如何改变匹配关系? 加大括号 注意:缩进只是为了程序可读性强,不代表匹配关系。,4.1.2 分支语句,2.switch语句
3、当有两种选择且需要根据条件决定是否执行时,通常用if语句;当有两种以上选择并且由表达式的值决定是否执行时,通常使用switch语句。 语法格式 switch (表达式) case 常量表达式1: 语句序列1; break; case 常量表达式2: 语句序列2; break; case 常量表达式N: 语句序列N; break; default: 语句序列; ,4.1.2 分支语句,注意: (1)和 的数据类型必须是整数或字符类型(byte、short、int、char),不能为布尔类型,且两者的数据类型必须一致; (2)结果值唯一; (3)不同的常量表达式可以公用一些语句序列; (4)bre
4、ak强制退出switch语句。,4.1.3 循环语句,循环语句:反复执行一段代码,直到满足终止条件为止。包括4部分: * 初始化部分:设置循环的初始条件 * 循环体:反复执行的一段代码 * 控制循环次数的部分 * 终止部分:为逻辑表达式,以验证是否满足循环终止条件,4.1.3 循环语句,Java的循环语句的形式: * while 循环语句 * for 循环语句 * dowhile循环语句 - 称为直到型循环 * foreach 循环语句:JDK1.5提供的一种新的循环语句,能以更简单的方式来遍历集合、数组中的元素。 格式: for(元素的数据类型type 变量名x:遍历对象obj) 例: fo
5、r(数组元素的数据类型 变量名:数组名),4.1.3 循环语句,1.while语句 while (布尔表达式) 循环体; 特点:先判断后执行,注意零循环和死循环。 例 用while语句求110累加和,4.1.3 循环语句,2. do-while语句 do 语句; while (条件表达式); 特点:先执行后判断,循环体至少执行一次,也可能出现死循环。 例 用do-while实现110的累加,4.1.3 循环语句,3. for语句 for (表达式1;表达式2;表达式3) 循环体; 表达式1:初始化部分 设置循环变量的初值 表达式2:循环条件判断部分 结果为布尔值 表达式3:迭代因子 给出循环变
6、量的变化规律,4.1.3 循环语句,for循环的几点注意 表达式1和表达式3可以包含多个语句,以“,”分开 for (int i=0, j=10; ij; i+, j-) 三个表达式均可以为空语句,但以“;”分开,表示无限循环 for ( ; ; ) / infinite loop . ,4.1.4 跳转语句,1. break switch中用到的(已介绍),用来中止一个语句序列。 break从循环体内跳出至后面语句,结束当前循环 举例:带与不带标号的break (课本P120),4.1.4 跳转语句,2. continue 格式:continue label; 语句标号label是可选的,若
7、有则表示转向执行label标识的代码段。 若无标号,则continue跳过本轮循环剩余语句,直接进入当前循环的下一轮;for语句中的continue跳至表达式3计算修改增量。,4.1.4 跳转语句,break和continue的总结(P121-122 例4.5) break用于switch和循环语句中。 continue只能用于循环语句中。 标号语句必须紧接在循环的头部,即标号语句与循环语句间不能有其它语句。 break和continue的标号必须在自己的循环上,不能在另外的循环语句上。 当break和continue被有条件执行时,其后的其它语句不起作用。,4.1.4 跳转语句,3.retu
8、rn语句 return语句的功能是从当前方法中退出,并返回到调用该方法的语句处继续执行程序,同时将方法的运行结果返回。 语法格式如下: return 表达式;,4.2 递归,1.递归定义 递归是数学中一种重要的概念定义方式,即用一个概念本身直接或间接地定义它自己。 阶乘函数n!=f(n) Fibonacci数列第n项f(n)的递归定义,4.2 递归,递归定义必须满足以下两个条件: 边界条件-至少有一条初始定义是非递归的。 递推通式-由已知函数值逐步递推计算出未知函数值。 边界条件和递推通式是递归定义的两个基本要素,缺一不可。递归定义只有具备了这两个基本要素,才能在有限次计算后得出结果。,4.2 递归,2.递归算法 存在直接或间接调用自身的算法称为递归算法。递归定义的问题可用递归算法求解,按照递归定义将问题简化,逐步递推,直至获得一个确定值。 例 求n!的递归方法 例 求Fibonacci数列第n项的递归方法。,