Java编程控制流与逻辑:条件分支、循环与调试

需积分: 0 2 下载量 36 浏览量 更新于2024-08-02 收藏 1.01MB PDF 举报
"这份PDF文档是关于Java编程的教程,涵盖了控制流、分支机制、布尔表达式、循环以及调试等核心概念,旨在帮助提升Java编程技能。" 在Java编程中,控制流是程序执行顺序的关键部分,它决定了代码的逻辑结构。本章详细介绍了以下知识点: 1. **分支机制**: - **If-else语句**:这是一种基本的条件判断,允许程序根据特定条件执行不同的代码块。 - **Omitting the else**:在某些情况下,可以省略else子句,使得代码更简洁。 - **复合语句**:用花括号{}包围的一组语句,作为一个整体执行。 - **嵌套语句**:一个语句内部包含另一个语句,增加了代码的复杂性。 - **多路if-else语句**:用于处理多个条件分支。 - **示例:州所得税计算**:一个实际的应用场景,展示如何使用if-else语句进行计算。 2. **布尔表达式**: - **简单布尔表达式**:基于逻辑运算符(如&&,||,!)构建的真假判断。 - **词法和字母顺序**:在比较字符串时,理解这些规则至关重要。 - **构建布尔表达式**:通过组合简单表达式来形成复杂的逻辑条件。 - **布尔表达式的求值**:了解何时以及如何评估这些表达式。 - **短路与完全评估**:布尔逻辑中的短路行为,如&&和||操作符的区别。 - **优先级和结合性规则**:理解运算符的优先级和它们组合的方式。 3. **循环**: - **while语句和do-while语句**:两种基础的迭代结构,分别在满足条件前和至少执行一次后进入循环。 - **算法和伪代码**:编写和理解算法的方法,以及用非正式语言表示代码的技巧。 - **示例:平均分数计算**:使用循环计算一组分数的平均值。 - **for语句**:常用的循环构造,通常用于迭代固定次数或遍历集合。 - **常见的for语句**:包括增强型for(foreach)语句,简化集合遍历。 - **嵌套循环**:在一个循环内嵌入另一个循环,用于处理多维度数据。 - **break和continue语句**:控制循环的退出和跳过当前迭代。 - **exit语句**:在某些情况下,如跳出所有嵌套循环,可能需要用到。 4. **调试**: - **循环错误**:识别和修复可能导致无限循环的问题。 - **变量追踪**:通过观察变量的值来定位问题。 - **通用调试技术**:包括使用断点、单步执行和打印输出。 - **示例:调试输入验证循环**:实际案例演示如何调试循环中的问题。 - **预防性编码**:通过良好的编程习惯减少错误的出现。 - **断言检查**:使用assert语句在开发阶段进行检查,确保程序状态正确。 这份文档还提供了章节总结、自我测试练习的答案以及编程项目,以加深学习者的理解和实践应用。通过这些内容,读者将能够熟练掌握Java编程中的控制流和逻辑处理,从而提高编程能力。
2013-07-04 上传
第1篇 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 关系运算符 13 实例7 逻辑运算符 14 实例8 位运算符 15 实例9 移位运算符 16 实例10 转型运算符 17 2.3 其他形式 18 实例11 常量与变量 18 实例12 各种进制的转换 19 实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九乘法表 28 实例17 如何列出素数 29 实例18 Java中的递归 31 实例19 男生女生各多少人 32 实例20 求水仙花数 34 实例21 求任意一个正数的阶乘 35 实例22 求n的n次方 35 实例23 利用for循环输出几何图形 36 实例24 杨辉三角 38 3.3 while语句 39 实例25 求1到100之间的和 39 实例26 存上100元需要多少天 40 实例27 输出100之间的所有偶数 41 实例28 如何判断回文数字 42 3.4 do…while语句 43 实例29 输出100之间的所有奇数 44 实例30 求最大的随机数 44 3.5 switch语句 45 实例31 判断字母分类 46 实例32 优良及差 47 实例33 打印任意一年日历 48 实例34 一年四季的划分 51 第2篇 Java数据处理 第4章 异常处理(教学视频:62分钟) 54 4.1 编译时异常 54 实例35 除0发生的算术异常(ArithmeticException) 54 实例36 数组下标越界异常(ArrayIndexOutOfBoundsException) 55 实例37 数组元素类型不匹配异常(ArrayStoreException) 56 实例38 强制类型转换异常(ClassCastException) 56 实例39 索引越界异常(IndexOutOfBoundsException) 57 实例40 空指针异常(NullPointerException) 58 实例41 数字格式转换异常(NumberFornatException) 59 实例42 字符串索引越界异常(StringIndexOutBounds) 60 实例43 操作错误(UnsupportedOperationException) 60 4.2 运行时异常 61 实例44 找不到指定类时发生的异常(ClassNotFoundException) 62 实例45 请求的方法不存在(NoSuchMethodException) 63 4.3 try…catch捕获异常 65 实例46 try…catch捕获异常的实例 66 实例47 try…catch…finally捕获异常的实例 67 实例48 try…catch嵌套捕获异常的实例 68 4.4 throws声明异常 69 实例49 throws声明异常实例一 69 实例50 throws声明异常实例二 70 4.5 throw抛出异常 72 实例51 throw抛出异常实例一 72 实例52 throw抛出异常实例二 73 4.6 自定义异常 74 实例53 自定义异常实例一 74 实例54 自定义异常实例二 75 第5章 数组(教学视频:98分钟) 78 5.1 一维数组 78 实例55 一维数组的创建与使用 78 实例56 按相反的顺序输出 79 实例57 奇偶分组 80 实例58 找宝 81 实例59 寻找最小数 82 实例60 我的位置在哪里 83 实例61 复制数组 85 实例62 插入新元素 86 实例63 数组的合并 87 实例64 去除重复元素 88 实例65 数组求和计算 90 实例66 求最大值、最小值和平均值 91 5.2 二维数组 92 实例67 二维数组的创建与使用 92 实例68 矩阵转置 93 实例69 奇数阶幻方 94 实例70 求方阵对角线之和 96 实例71 矩阵的加法 97 实例72 矩阵的减法 98 实例73 快递报价单 99 5.3 数组的排序 101 实例74 冒泡排序法 102 实例75 数组递增排序 103 实例76 部分数组递增排序 103 实例77 选择排序法 104 实例78 快速排序法 106 第6章 字符串(教学视频:138分钟) 108 6.1 字符串类String 108 实例79 创建字符串类 108 实例80 如何使用charAt()方法计算重复字符 109 实例81 按字母顺序比较大小 110 实例82 首尾相连 111 实例83 字符串间的比较 112 实例84 字符集的解码方法 113 实例85 寻找指定字符第一次出现的位置 114 实例86 寻找指定字符最后出现的位置 115 实例87 我究竟有多长 116 实例88 替换指定的字符 117 实例89 分割字符串 117 实例90 如何使用substring()方法截取子串 118 实例91 分解字符串 119 实例92 字母大小写转换 120 实例93 去除多余的空白 120 实例94 原始数组类型的String形式 121 实例95 Java合法标识符 122 实例96 显示一周各星期的名称 123 实例97 构造空心方框 124 实例98 这一天是星期几 125 实例99 大小写互换 127 实例100 输出指定范围的素数 128 实例101 我出现了几次 129 实例102 算术表达式求值器 129 实例103 字符串对齐调整器 137 实例104 字符串的加密 139 实例105 使用正则表达式验证电话号码的格式 141 6.2 字符串缓存类StringBuffer 143 实例106 创建字符串缓存类 143 实例107 提取单个字符 144 实例108 给指定字符赋值 145 实例109 插入新的字符 146 实例110 插入新的字符串 146 实例111 获取字符串的子串 147 实例112 删除指定的字符 148 实例113 倒置字符串 149 实例114 去除重复字符 149 实例115 检查是否是回文 151 第7章 输入/输出流(教学视频:116分钟) 152 7.1 文件和目录 152 实例116 显示文件的基本信息 152 实例117 显示目录的基本信息 153 实例118 在指定的目录下创建单个文件 156 实例119 在指定的目录下创建多个临时文件 158 实例120 删除指定目录下的文件 160 实例121 移动指定目录下的文件 163 实例122 文件搜索引挚 167 7.2 字节流 169 实例123 复制指定目录下的文件 170 实例124 显示文件中的内容 173 实例125 将数据保存到指定的文件中 175 实例126 将由键盘中录入的信息保存到文件中 176 实例127 一个文件变成多个小文件 178 实例128 多个小文件合成一个文件 181 实例129 统计指定文件中的字符个数 183 实例130 对象的序列化与反序列化 185 实例131 同时显示多个文件 187 实例132 生成zip压缩文件 189 实例133 解压缩zip文件 192 实例134 生成Excel文件 194 实例135 读取Excel文件中的内容 198 实例136 生成PDF文件 199 实例137 读取PDF文件中的内容 203 实例138 用iText生成Word文件 205 实例139 利用POI读取Word文件中的内容 208 7.3 字符流 209 实例140 按顺序创建文件 210 实例141 按顺序读取文件 211 实例142 追加文件内容 211 实例143 只显示文件中指定的字符 214 实例144 读取jar包文件 215 实例145 文件的加密/解密操作 217 实例146 复制图片 219 实例147 随机读写Java类文件 221 第3篇 Java面向对象编程 第8章 面向对象(教学视频:72分钟) 226 8.1 类 226 实例148 简单的通讯录类 226 实例149 简单的长度单位转换类 227 实例150 卡车和卡车司机之间的关系 229 实例151 双色球 231 8.2 成员变量和方法 236 实例152 使用类作为成员变量 236 实例153 构造方法 237 实例154 使用静态成员变量计算内存中实例化的对象数目 239 实例155 实现加减乘除的方法 240 8.3 面向对象的设计模式 241 实例156 Singleton单例模式 242 实例157 招聘(简单工厂模式) 243 实例158 同学聚会(工厂方法模式) 244 实例159 图书展(抽象工厂模式) 246 实例160 汽车适配器(Adapter适配器模式) 248 8.4 垃圾回收 250 实例161 垃圾回收的机制 250 第9章 面向对象的四大特征(教学视频:65分钟) 252 9.1 抽象 252 实例162 求自定义几何图形的面积和周长 252 实例163 使用抽象方法实现的支票夹 254 9.2 封装 257 实例164 世界小姐参赛资格 257 实例165 自定义复数类 261 9.3 继承 264 实例166 轿车与本田的关系 264 实例167 继承关系的加载顺序 266 实例168 如何访问同名的方法或变量 268 实例169 super()方法的使用 271 实例170 this方法的使用 274 实例171 一张考试成绩单 275 实例172 银行自动存取一体机 278 9.4 多态 284 实例173 饮食文化 284 实例174 使用构造方法的重载计算课程的GPA值 287 第10章 内部类与接口(教学视频:41分钟) 290 10.1 成员内部类 290 实例175 成员内部类的使用规范 290 实例176 猜谜 292 10.2 方法内部类 294 实例177 局部内部类的使用规范 294 实例178 奖学金的评分标准 295 10.3 匿名内部类 297 实例179 匿名内部类的使用规范 297 实例180 电话与移动电话 299 10.4 静态内部类 300 实例181 静态内部类的使用规范 300 实例182 苹果的来历 302 10.5 接口 303 实例183 求n的幂数与倍数 304 实例184 商品订单 306 实例185 多功能排序 310 第11章 Java常用类(教学视频:66分钟) 315 11.1 数学Math类 315 实例186 求圆周率∏值 315 实例187 求对数值 316 实例188 使用取整函数 317 11.2 Random类的使用 318 实例189 随机数 319 实例190 验证码 322 11.3 Date类和Calendar类 324 实例191 使用Date类获取系统的当前时间 324 实例192 使用DateFormat类获取系统的当前时间 325 实例193 使用GregorianCalendar类获取系统的当前时间 326 实例194 使用SimpleDateFormat类获取系统的当前时间 329 实例195 显示某年某月某一周的信息 330 实例196 显示某年某月的信息 332 实例197 时间的设置与获取 334 实例198 万年历(农历和阳历的互换) 337 11.4 Formatter类的使用 347 实例199 时间格式转换符的使用 347 实例200 数据格式转换符的使用 349 11.5 System类的使用 351 实例201 记录程序执行的时间 351 实例202 程序的退出 352 实例203 获取程序运行环境的信息 353 第4篇 Java高级开发技术 第12章 集合(教学视频:45分钟) 358 12.1 Set 358 实例204 利用HashSet删除学生 358 实例205 不重复的随机数序列 360 实例206 运用映射的相关类(Map) 363 实例207 运用集的相关类(Set) 365 12.2 List 368 实例208 增加所需的元素 368 实例209 Iterator迭代器的使用 370 实例210 谁是幸运儿 371 实例211 自定义Queue队列 373 实例212 List、Set与Array之间的相互转换 375 实例213 二分查找法的实现方法 377 实例214 模拟操作系统的进程调度 379 实例215 利用栈将字符串逆序输出 381 实例216 动态的数组链表 382 实例217 你能猜出鱼是谁的宠物吗? 387 实例218 使用Collections类对List的排序操作 393 实例219 LinkedList的添加删除操作 395 实例220 运用Vector 397 实例221 改变Properties文件中的键值 399 第13章 多线程编程(教学视频:121分钟) 405 13.1 多线程的五种基本状态 405 实例222 启动线程 405 实例223 参赛者的比赛生活(线程休眠唤醒) 407 实例224 资源搜索并下载(线程等待和通报) 410 实例225 模拟淘宝购物买卖双方交易问题 412 实例226 携子之手 与子偕老(join) 415 实例227 线程让步(Yield) 417 实例228 会走动的钟(多线程) 419 实例229 变形金刚中的守护神(守护线程) 424 实例230 查看JVM中所有的线程的活动状况 426 实例231 模仿网络快车下载工具下载文件 428 13.2 多线程的同步与互斥 436 实例232 多线程同步方法的实例 436 实例233 ATM存取一体机(线程同步互斥) 437 实例234 我的钱哪里去了 440 实例235 门锁打不开了(死锁) 444 实例236 门锁终于被打开了(解决死锁) 446 实例237 一个死锁的例子 448 13.3 线程的优先级 451 实例238 排座位(线程优先级) 451 实例239 赛车 454 13.4 定时器 458 实例240 定时器(Timer) 458 实例241 数字定时器 459 13.5 线程连接池 462 实例242 手术任务(线程池) 462 实例243 模拟人工服务台(线程连接池) 466 13.6 线程应用实例 471 实例244 下雪的村庄 472 实例245 小飞侠 474 实例246 飞流直下 477 实例247 多线程断点续传 479 实例248 滚动的珠子 485 实例249 余额查询 489 实例250 滚动的文字 492 实例251 漂浮效果 495 实例252 监视内存的使用情况 499 实例253 璀璨的星空 501 实例254 银行和超市业务的模拟 505 第14章 泛型(教学视频:43分钟) 511 14.1 泛型基础 511 实例255 一个关于泛型的简单例子 511 实例256 带两个类型参数的泛型 513 实例257 有界类型程序示例 514 实例258 通配符使用示例 515 实例259 泛型方法使用示例 516 实例260 泛型接口示例 518 实例261 泛型实现坐标打印 519 14.2 泛型类的继承 521 实例262 继承泛型类示例 521 实例263 继承非泛型类示例 522 实例264 泛型类的类型识别示例 523 实例265 强制类型转换示例 525 14.3 擦拭 526 实例266 无限界的擦拭 526 实例267 有限界的擦拭 527 14.4 集合泛型类 528 实例268 Hashtable的泛型化 528 实例269 多功能画笔 529 第15章 网络编程(教学视频:52分钟) 534 15.1 IP地址 534 实例270 获取计算机名与IP地址 534 实例271 获取网址的IP地址 535 实例272 判断两个网址的主机名是否一样 536 实例273 测试IP的类型 537 实例274 查找主机 538 实例275 主机所支持的协议 539 15.2 URL类的使用 540 实例276 使用URL访问网页 540 实例277 URL的组成部分 541 实例278 通过指定的URL可以获取网页的源代码 542 实例279 一对多通信模式 544 实例280 自制浏览器 549 实例281 扫描TCP端口 551 实例282 TCP协议服务器 552 实例283 TCP协议客户机 553 实例284 Socket连接信息 555 实例285 Echo服务的客户端是如何实现的? 556 实例286 检测本机的服务端口 558 实例287 下载的页面不丢失链接 559 实例288 如何对网页进行重新定向 560 实例289 在Internet上搜索对象 560 实例290 LAN使用代理服务器 562 实例291 BBS论坛服务器端 567 实例292 UDP报文的发送与接收 579 第16章 数据库技术(教学视频:38分钟) 583 实例293 加载JDBC驱动程序 583 实例294 通过JDBC对数据库进行查询 584 实例295 数据库更新 585 实例296 获取数据库的基本信息 586 实例297 获取数据库对SQL支持的信息 589 实例298 处理访问数据库出现的常见异常情况 591 实例299 在Servlet中连接数据库 593 实例300 数据分页显示 595 实例301 批处理 601 实例302 事物处理 604 实例303 调用存储过程 608 实例304 连接ODBC数据库 611 实例305 数据库中图片文件的存取 614 第17章 界面设计--Swing(教学视频:88分钟) 618 17.1 Swing组件介绍及应用 618 实例306 JFrame框架的应用 618 实例307 Border的使用 619 实例308 使用Icon组件显示一张图片 620 实例309 Icon接口的应用 621 实例310 JLabel组件 622 实例311 Icon应用到JLabel中 623 实例312 JButton的使用 624 实例313 在JButton上设置快捷键 625 实例314 设置默认按钮 626 实例315 使用JCheckBox组件 627 实例316 JCheckBox事件处理 629 实例317 JRadioButton的使用 630 实例318 JComboBox的使用 632 实例319 利用ComboModel构造JComboBox 633 实例320 DefaultComboBoxModel的使用 635 实例321 建立有图像的JComboBox 636 实例322 建立可自行输入的JComboBox 637 实例323 JComboBox的事件处理 638 实例324 JTextField组件的使用 640 实例325 使用JTextArea组件 641 17.2 页面布局及事件监听 642 实例326 BorderLayout版面布局 643 实例327 FlowLayout布局管理 644 实例328 应用GridLayout设计版面 645 实例329 如何使用BoxLayout布局管理器 647 实例330 使用ActionEvent监听组件 648 实例331 使用WindowAdapter实现鼠标事件 649 实例332 使用MouseMotionListener监听鼠标 650 实例333 使用KeyListener监听键盘 652 17.3 组件的综合应用 654 实例334 计算器 654 实例335 创建树菜单 657 实例336 在节点中显示详细信息 658 第18章 Applet小应用程序(教学视频:39分钟) 662 实例337 不断变大的文字 662 实例338 灯光扫描的效果 664 实例339 字体逐渐展开的效果 666 实例340 飞舞的气球 668 实例341 逐渐浮现的图片 671 实例342 火焰边框的特效 674 实例343 局部放大效果 677 实例344 水波荡漾的效果 679 实例345 漫天飞花 682 实例346 动感影集 685 实例347 彩虹字 688 实例348 多功能按键 690 第19章 多媒体与图像处理(教学视频:51分钟) 694 19.1 多媒体 694 实例349 测试音频播放器 694 实例350 测试视频播放器 696 实例351 视频反色效果 698 实例352 实现一个录音机 703 实例353 建立一个调色板 707 19.2 图像处理 710 实例354 在计算机内存中创建一个图像 710 实例355 会移动的图像 712 实例356 将图片进行180度旋转 714 实例357 处理图像的明暗度 716 实例358 如何将彩色图转化为灰度图 721 实例359 锐化和模糊图像 724 实例360 显示一个图像的轮廓 727 实例361 如何放大及拉伸图像 730 第20章 JSP开发技术(教学视频:62分钟) 735 20.1 JSP基础 735 实例362 网页版的9×9乘法口诀 735 实例363 Java Servlet小程序 737 实例364 Servlet对表单的处理过程 738 实例365 获取/修改JavaBeans中的内容 741 20.2 JSP程序设计 743 实例366 喜连大三元 743 实例367 运气对对碰 748 实例368 文字样式统计器 752 实例369 图形统计器 754 20.3 垃圾信息投诉站 756 实例370 创建投诉表单 756 实例371 保存投诉的内容 760 实例372 实现投诉站的后台操作 762 实例373 取消投诉内容 764 实例374 站内信 767 20.4 网站在线评估系统 769 实例375 创建评估问卷 769 实例376 实现评估的后台操作 771 实例377 查看评估结果 773 第5篇 Java综合案例 第21章 模拟服务器与客户端之间的通信(教学视频:13分钟) 778 21.1 实例介绍 778 21.2 框架设计 779 21.2.1 项目的总体结构 779 21.2.2 搭建开发环境 779 21.2.3 确定项目工程目录 779 21.3 公用模块设计 780 21.4 客户端程序 780 21.4.1 客户端的工作流程 780 21.4.2 编写客户端的源程序 781 21.4.3 客户端源的程序解读 783 21.5 服务器端程序 785 21.5.1 服务器端的工作流程 785 21.5.2 编写服务器端的源程序 785 21.5.3 服务器端的源程序解读 788 21.6 小结 790 第22章 书店管理系统(教学视频:56分钟) 791 22.1 实例分析 791 22.2 系统设计 792 22.2.1 结构分析 792 22.2.2 搭建环境 792 22.2.3 创建目录 793 22.3 数据库设计 793 22.4 公用模块设计 795 22.4.1 data包中的类 795 22.4.2 util包中的类 798 22.5 用户登录模块 800 22.6 系统主界面 802 22.7 基础维护模块 804 22.7.1 图书维护 804 22.7.2 用户维护 811 22.8 借还管理模块 818 22.8.1 借书 818 22.8.2 还书 821 22.9 查询管理模块 824 22.9.1 图书查询 824 22.9.2 用户查询 826 22.10 系统管理模块 829 22.11 小结 831