1.使用if和switch语句编写代码
(1) If语句的唯一合法表达式是布尔表达式。即:只能是可以被解析为布尔值或布尔变量的表达式
(2) 一定要注意布尔赋值(=),它可能被错认为布尔相等性(==)测试:boolean x = false;if(x = true){}//an assignment, so x will always be true!
(3) 对于只有一个条件语句的if块来说,波形括号是可选的。但要注意缩进
(4) Switch语句只能计算枚举或byte、short、int和char数据类型.Notice:long类型,编译通不过
(5) Case常量必须是字面值或final变量,或者是常量表达式,包括枚举。不能在case中包含非final变量或一个取值范围
(6) 如果switch语句中的条件与一个case常量相匹配,则将运行switch内在这一匹配的case语句后的所有代码,直至遇到break语句,或者到达switch语句的末尾为止。即:相匹配的case只是这个case块的入口点,但除非有break语句,否则将执行的case代码并不只是这个相匹配的case
(7) 如果想在没有一个case值匹配条件值时执行一些代码,则应该在switch语句内使用default关键字
(8) Default块可以位于switch块内的任何地方,因此,如果没有case相匹配,则将进入default块。如果default不包含break,则代码将继续执行(直落)到switch的末尾,或者直到遇到break语句为止
2.使用循环编写代码
(1) 基本for语句包含3个部分:声明和/或初始化、布尔计算以及迭代表达式
(2) 如果在基本for循环内计算或者递增变量,则它必须在该循环之前或在for循环声明内声明
(3) 在基本for循环声明内声明(不只是初始化)的变量不能在for循环之外访问,即:for循环后面的代码不能使用该变量
(4) 在基本for循环声明的第一部分内能够初始化多个同类型的变量,每个初始化变量必须用逗号分隔
(5) 增强型for循环(Java6)有两个部分:声明(块变量,其类型与数组或集合的元素兼容,并且该变量包含给定迭代的元素的值)和表达式(你希望循环遍历的数组或集合)。它只用于循环遍历数组或集合
(6) 不能将数字或其它不能计算为布尔值的任何内容作为if语句或循环结构的条件。例如:不能将if语句写成if(x),除非x是布尔变量
(7) 即使测试条件不满足,do循环也至少将进入循环体一次
3.使用break和continue语句
(1) 无标签的break语句将停止最内层循环构造的当前迭代,并执行该循环之后的下一行代码
(2) 无标签的continue语句将导致:最内层循环构造的当前迭代停止,检查该循环的条件,如果条件满足,则再次运行该循环
(3) 若break/continue语句是带标签的,则它将在带标签的循环上引发类似的操作,而不是在最内层循环上
4.处理异常
(1) 异常有两种形式:检验异常和非检验异常
(2) 检验异常包括Exception的所有子类型,但不包括扩展RuntimeException的类
(3) 检验异常遵守处理或声明它的规则,任何可能抛出检验异常的方法(包括调用能够抛出检验异常方法的方法),都必须使用throws关键字声明异常,或用适当的try/catch处理异常
(4) Error或RuntimeException的子类型是非检验异常,因此,编译器不强迫要求处理或声明规则。你可以随意声明或处理它们,编译器对此不关心
(5) 若用可选的finally块,则始终会调用它,不管在相应的try内是否有异常抛出,也不管抛出的异常是否被捕获
(6) “始终调用finally”这一规则的唯一例外是:如果JVM关闭,则不会调用finally块。如果从try或catch块调用System.exit(),则会发生这种情况
(7) 调用finally并不意味着它必然完成。Finally块内的代码本身能够引发异常或者触发方法System.exit()
(8) 未捕获的异常通过调用栈向后传播,它从抛出该异常的方法开始,到具有该异常类型相应catch的第一个方法为止,或者到JVM关闭为止[如果该异常到达main(),并且main()声明它”躲避”该异常时,则JVM会关闭]
(9) 可创建自己的异常,通常通过扩展Exception或其子类型之一创建。这些异常将被看作检验异常,编译器将对这些异常强制执行处理或声明规则
(10) 所有的catch块都必须按照从最具体到最通用的顺序排列。如果对于IOException和Exception有一个catch子句,则必须把针对IOException的catch放在代码的前面。否则,IOException将被catch(Exception e)捕获,因为catch变元能够捕获这一特定的异常或其任何子类型。编译器将禁止定义从来不能到达的catch子句
(11) 有些异常时有程序员创建的,有些则是由JVM创建的
5.使用断言机制
(1) 断言为在开发和调试期间测试假设提供了一种办法
(2) 断言通常在测试期间启用,在部署期间禁用
(3) 可以将assert用作关键字(Java1.4起)或者标识符,但不能同时将它用作这两者。为了编译将assert用作标识符(例如,方法名称)的旧代码,应使用javac的命令行标志-source 1.3
(4) 默认情况下,断言在运行时是禁用的。要启用断言,应使用-ea或-enableassertions命令行标志
(5) 可以使用-da或-disableassertions标志有选择地禁用断言
(6) 可以使用不带任何变元的标识启用或禁用断言,则一般将启用或禁用断言。可以结合启用和禁用开关为某些类和/或包启用断言,而对其它类和/或包禁用
(7) 使用下面的方法能够以类为基础启用和禁用断言:java -ea -da:MyClass TestClass
(8) 可以以包为基础启用或禁用断言,指定的任何包也包含所有子包
(9) 不要使用断言验证公共方法的变元
(10) 不要使用可能产生副作用的断言表达式。
(11) 不要使用断言来验证某个代码快将永远不会到达。对于永远不应到达的代码,可以使用”assert false”,如果执行这条assert语句,则会立即抛出一个AssertionError.
分享到:
相关推荐
在编程语言中,流程控制是程序执行的基本构造块,它决定了程序如何按顺序或条件执行。本题涉及了两种主要的流程控制结构:`switch`语句和`if`语句,同时也涉及到常量、变量的使用以及逻辑运算符。 1. 题目中的第一...
第5章:数组 第6章:类设计 第7章:高积类特性 第8章:异常和断言 第9章:基于文本的应用程序 第10章:建立Java GUI 第11章:GUI事件处理 第12章:基于GUI的应用程序 第13章:多线程 第14章:高级I/O流 第15章:网络...
第五章的主题聚焦在“异常”处理,这是Java编程中至关重要的一部分,用于处理程序运行时可能出现的问题。 在Java编程中,异常是一种程序执行时的错误情况,它中断了正常的代码流程。Java使用了异常处理机制来处理...
【Java流程控制语句详解】 Java编程语言中的流程控制语句是程序设计的核心部分,它们决定了程序中各语句的执行顺序,使得单一的语句能够组合成具有特定功能的逻辑块。本章将深入探讨Java流程控制语句,包括语句概述...
本章重点讲解了Java中的异常处理,并提供了相关的源代码示例,以帮助开发者深入理解这一概念。 异常是程序运行过程中出现的非正常情况,如除以零、文件未找到、空指针引用等。Java使用异常处理来中断正常的代码流程...
5. **异常的传播与捕获** - 如果一个异常没有被捕获,它会向上冒泡,直到被更高层次的`try/except`块捕获,或者导致程序终止。 - 可以使用`except Exception as e`捕获所有类型的异常,但这种方法通常不推荐,因为...
##### 第5章 声明和访问控制 - **5.1 数组** - **5.1.1 声明数组变量**:介绍了数组的声明方式以及如何初始化数组。 - **5.1.2 如何获得数组的长度**:解释了如何通过`.length`属性获取数组的大小。 - **5.1.3 ...
- 异常类的使用可以帮助程序员更好地控制程序流程,分离错误处理代码,并提高代码的可维护性。 6. **断言(Assertion)** - 断言是一种调试工具,用于检查代码中的假设是否正确。通过`assert`关键字,可以在代码...
6. **第06章_异常与断言.pptx**:异常处理是Java程序健壮性的重要组成部分,这章会介绍try-catch语句,异常的分类,以及断言的使用,帮助编写出更稳定的程序。 7. **第07章_图形与用户界面基础.pptx**:Java提供了...
5. **第5章:数组与集合框架** - 数组的基本操作 - 集合框架(List, Set, Map等) 6. **第6章:异常处理与断言** - 异常处理机制 - 断言的使用方法 7. **第7章:泛型与枚举** - 泛型类和接口 - 枚举类型...
学习如何编写和执行单元测试,以及断言和测试框架的使用,对于软件开发的持续集成和持续交付流程非常重要。 10. **文件和目录操作**:Java的File类和相关API允许对文件和目录进行操作,如创建、删除、重命名、读写...
Java语言的第三章主要讲解了Java程序的基本构造单元——语句。语句是程序中执行特定任务的最小语法单位,通常包含表达式。本章详细介绍了多种类型的语句及其应用场景。 1. 空语句:仅包含一个分号,不执行任何操作...
- **断言与异常处理**:assert宏的使用、try-catch-finally块的编写。 - **调试工具**:Visual Studio中调试工具的使用。 - **性能分析**:如何使用工具进行性能分析。 ##### 第12章 Windows编程概念 - **消息驱动...
在第三章中,你可能会接触到变量、数据类型、运算符、流程控制语句(如if-else、switch、for、while循环)以及方法的定义与调用。这些都是编写任何Java程序的基础,它们帮助我们组织和执行逻辑。 Eclipse作为一款...
第5章 分布式对象 5.1 客户与服务器的角色 5.2 远程方法调用 5.3 配置远程方法调用 5.4 远程方法中的参数传递 5.5 服务器对象激活 5.6 JavaIDL与CORBA 5.7 远程方法调用与SOAP 第6章 高级Swing 第7章 高级...
《谭浩强C程序设计》是C语言学习的经典教材,第五版更是集合了前四版的精华,并在原有的基础上进行了更新和完善。这份压缩包包含了该书配套的PPT讲义和程序源码,为读者提供了丰富的学习资源。下面将详细阐述其中的...
5. **第5章:糖果机界面** - 通过一个具体的项目案例——糖果机模拟程序的设计与实现,本章展示了如何将理论知识应用到实际编程中去。 6. **第6章:风险事业** - 本章探讨了在软件开发过程中可能会遇到的各种风险...