2012-03-31
97-102/913
Java编程思想第四版——第十天
第4章 控制执行流程
就像有知觉的生物一样,程序必须在执行过程中控制它的世界,并做出选择,在java中,你要使用执行控制语句来做出选择。
Java使用了C的所有流程控制语句。
关键字:if-else、while、do-while、for、return、break以及选择语句switch
Java不支持goto语句,虽然可以进行类似goto的跳转,但比起典型的goto,有了很多限制。
4.1 true和false
所有条件语句都利用条件表达式的真或假来决定执行路径。Java不允许将一个数字作为布尔值使用,C和C++中允许(真是非零,假使零)。如果想在布尔测试中使用一个非布尔值,首先必须用一个条件表达式将其转换成布尔值。(if(a)、f(a!=0))
4.2 if-else
If-else是控制程序流程的最基本的形式,else是可选的。
if(boolean-expression)
statement
if(boolean-expression)
statement
else
statement
else if,一个else后面紧跟另一个新的if语句。
Java与C和C++都是格式自由的语言,但习惯上海市将流程控制语句的主体部分缩进排列,代码能方便的确定起始与终止。
4.3 迭代
while、do-while、for用来控制循环,有时将它们划分为迭代语句(iteration statement)。语句会重复执行,直到起控制 作用的布尔表达式(boolean expression)得到假的结果为止。
while(booean-expression)
statement
循环刚开始时,会计算一次布尔表达式的值,在语句的下一次迭代开始前会再计算一次。
Math库的static方法random(),产生0和1之间(包括0,但不包括1)的一个double值。
4.3.1 do-while
do-while格式:
do
statement
while(boolean-expression)
do-while和while唯一的区别就是do-while中德语句至少会执行一次,即便表达式第一次就被计算为false。While中,条件第一次为false,其中的语句根本不会执行。
实际应用中,while比do-while更常用一些。
4.3.2 for
For循环可能是最经常使用的迭代形式,第一次迭代之前要进行初始化,随后会进行条件测试,每一次迭代结束时,进行某种形式的步进。
格式:
for(initialization; boolean-expression; step)
statement
初始化(initialization)表达式、布尔表达式(boolean-expression),或者步进(step)运算,都可以为空。每次迭代前会测试布尔表达式。若获得的结果是false,就会执行for语句后面的代码行。每次循环结束,会执行一次步进。
For循环常用于执行计数任务。
java.lang.Character包装器类,可以把char基本类型的值包装进对象。static isLowerCase()方法检查字符是否为小写字母。
C要求所有变量都在一个块的开头定义,以便编译器在创建这个块的时候,可以为那些变量分配空间。Java和C++中,可在整个块的范围内分散变量声明,在真正需要的地方才加以定义,这样可形成更自然的编程风格,也更易理解。
4.3.3 逗号操作符
不是逗号分隔符(逗号用作分隔符时用来分隔函数的不同参数)。
Java里唯一用到逗号操作符的地方就是for循环的控制表达式。在控制表达式的初始化和步进控制部分,可以使用一系列由逗号分隔的语句,而且那些语句均会独立执行。
通过使用逗号操作符,可以在for语句内定义多个变量,但是它们必须具有相同的类型。
例如:for(int i=1,j=i+10; i<5; i++,j=i*2)
for语句中的int定义涵盖了i和j,在初始化部分实际上可以拥有任意数量的具有相同类型的变量定义。在一个控制表达式中,定义多个变量的这种能力只限于for循环适用,在其他任何选择或迭代语句中都不能使用这种方式。
无论在初始化还是在步进部分,语句都是顺序执行的,此外,初始化部分可以有任意数量的同一类型的定义。
4.4 Foreach语法
Java SE5引入了一种新的更加简洁的for语法用于数组和容器,即foreach语法,表示不必创建int变量去对由访问项构成的序列进行计数,foreach将自动产生每一项。
for(float x : f),这条语句定义了一个float类型的变量x,继而将每一个f的元素赋值给x。
任何返回一个数组的方法都可以使用foreach。
例如,String类有一个方法toCharArray(),它返回一个char数组,可以用foreach迭代在字符串里面的所有字符。
foreach还可以用于任何iterable对象。
For语句会在一个整型值序列中步进:for(int i=0;i<100;i++),foreach语法支持,除非先创建一个int数组。
重载:相同的方法名可以具有不同的参数列表。
做性能调优,使用仿真器做评价(一种可以度量代码性能的工具)。
foreach语法不仅在录入代码时可以节省时间,更重要的是,它阅读起来也要容易的多,它说明正在努力做什么(例如获取数组中的每一个元素),而不是给出正在如何做的细节(例如正在创建索引,因此可以使用它来选取数组中的每一个元素)。
4.5 return
在java中有多个关键词表示无条件分支,它们只是表示这个分支无需任何测试即可发生。这些关键词包括return、break、continue和一中与其他语言中的goto类似的跳转到标号语句的方式。
Return关键词有两方面的用途:一方面指定一个方法返回什么值(假设它没有void返回值),另一方面它会导致当前的方法退出,并返回那个值。
方法在执行了return后不再继续执行。
如果在返回void的方法中没有return语句,那么在该方法的结尾处会有一个隐式的return,因此在方法中并非总是必须要有一个return语句。但是,如果一个方法声明它将返回void之外的其他东西,那么必须确保每一条代码路径都将返回一个值。
97-102/913
Java编程思想第四版——第十天
第4章 控制执行流程
就像有知觉的生物一样,程序必须在执行过程中控制它的世界,并做出选择,在java中,你要使用执行控制语句来做出选择。
Java使用了C的所有流程控制语句。
关键字:if-else、while、do-while、for、return、break以及选择语句switch
Java不支持goto语句,虽然可以进行类似goto的跳转,但比起典型的goto,有了很多限制。
4.1 true和false
所有条件语句都利用条件表达式的真或假来决定执行路径。Java不允许将一个数字作为布尔值使用,C和C++中允许(真是非零,假使零)。如果想在布尔测试中使用一个非布尔值,首先必须用一个条件表达式将其转换成布尔值。(if(a)、f(a!=0))
4.2 if-else
If-else是控制程序流程的最基本的形式,else是可选的。
if(boolean-expression)
statement
if(boolean-expression)
statement
else
statement
else if,一个else后面紧跟另一个新的if语句。
Java与C和C++都是格式自由的语言,但习惯上海市将流程控制语句的主体部分缩进排列,代码能方便的确定起始与终止。
4.3 迭代
while、do-while、for用来控制循环,有时将它们划分为迭代语句(iteration statement)。语句会重复执行,直到起控制 作用的布尔表达式(boolean expression)得到假的结果为止。
while(booean-expression)
statement
循环刚开始时,会计算一次布尔表达式的值,在语句的下一次迭代开始前会再计算一次。
Math库的static方法random(),产生0和1之间(包括0,但不包括1)的一个double值。
4.3.1 do-while
do-while格式:
do
statement
while(boolean-expression)
do-while和while唯一的区别就是do-while中德语句至少会执行一次,即便表达式第一次就被计算为false。While中,条件第一次为false,其中的语句根本不会执行。
实际应用中,while比do-while更常用一些。
4.3.2 for
For循环可能是最经常使用的迭代形式,第一次迭代之前要进行初始化,随后会进行条件测试,每一次迭代结束时,进行某种形式的步进。
格式:
for(initialization; boolean-expression; step)
statement
初始化(initialization)表达式、布尔表达式(boolean-expression),或者步进(step)运算,都可以为空。每次迭代前会测试布尔表达式。若获得的结果是false,就会执行for语句后面的代码行。每次循环结束,会执行一次步进。
For循环常用于执行计数任务。
java.lang.Character包装器类,可以把char基本类型的值包装进对象。static isLowerCase()方法检查字符是否为小写字母。
C要求所有变量都在一个块的开头定义,以便编译器在创建这个块的时候,可以为那些变量分配空间。Java和C++中,可在整个块的范围内分散变量声明,在真正需要的地方才加以定义,这样可形成更自然的编程风格,也更易理解。
4.3.3 逗号操作符
不是逗号分隔符(逗号用作分隔符时用来分隔函数的不同参数)。
Java里唯一用到逗号操作符的地方就是for循环的控制表达式。在控制表达式的初始化和步进控制部分,可以使用一系列由逗号分隔的语句,而且那些语句均会独立执行。
通过使用逗号操作符,可以在for语句内定义多个变量,但是它们必须具有相同的类型。
例如:for(int i=1,j=i+10; i<5; i++,j=i*2)
for语句中的int定义涵盖了i和j,在初始化部分实际上可以拥有任意数量的具有相同类型的变量定义。在一个控制表达式中,定义多个变量的这种能力只限于for循环适用,在其他任何选择或迭代语句中都不能使用这种方式。
无论在初始化还是在步进部分,语句都是顺序执行的,此外,初始化部分可以有任意数量的同一类型的定义。
4.4 Foreach语法
Java SE5引入了一种新的更加简洁的for语法用于数组和容器,即foreach语法,表示不必创建int变量去对由访问项构成的序列进行计数,foreach将自动产生每一项。
for(float x : f),这条语句定义了一个float类型的变量x,继而将每一个f的元素赋值给x。
任何返回一个数组的方法都可以使用foreach。
例如,String类有一个方法toCharArray(),它返回一个char数组,可以用foreach迭代在字符串里面的所有字符。
foreach还可以用于任何iterable对象。
For语句会在一个整型值序列中步进:for(int i=0;i<100;i++),foreach语法支持,除非先创建一个int数组。
重载:相同的方法名可以具有不同的参数列表。
做性能调优,使用仿真器做评价(一种可以度量代码性能的工具)。
foreach语法不仅在录入代码时可以节省时间,更重要的是,它阅读起来也要容易的多,它说明正在努力做什么(例如获取数组中的每一个元素),而不是给出正在如何做的细节(例如正在创建索引,因此可以使用它来选取数组中的每一个元素)。
4.5 return
在java中有多个关键词表示无条件分支,它们只是表示这个分支无需任何测试即可发生。这些关键词包括return、break、continue和一中与其他语言中的goto类似的跳转到标号语句的方式。
Return关键词有两方面的用途:一方面指定一个方法返回什么值(假设它没有void返回值),另一方面它会导致当前的方法退出,并返回那个值。
方法在执行了return后不再继续执行。
如果在返回void的方法中没有return语句,那么在该方法的结尾处会有一个隐式的return,因此在方法中并非总是必须要有一个return语句。但是,如果一个方法声明它将返回void之外的其他东西,那么必须确保每一条代码路径都将返回一个值。
发表评论
-
Java编程思想第四版——第二十一天
2012-05-04 12:56 5772012-05-04 163-170/913 Java编 ... -
Java编程思想第四版——第二十天
2012-05-03 13:45 7022012-05-03 158-163/913 Java编程思 ... -
Java编程思想第四版——第十九天
2012-05-02 11:08 8162012-05-02 149-158/913 Java编程思 ... -
Java编程思想第四版——第十八天
2012-04-27 13:12 10022012-04-27 142-149/913 Java编 ... -
Java编程思想第四版——第十七天
2012-04-25 11:18 7422012-04-25 138-142/913 Java编程思 ... -
Java编程思想第四版——第十六天
2012-04-24 13:50 7502012-04-24 131-138/913 Java编 ... -
Java编程思想第四版——第十五天
2012-04-23 17:14 7542012-04-23 121-131/913 Java编程思 ... -
Java编程思想第四版——第十四天
2012-04-19 11:28 6252012-04-19 118-121/913 Java编程思 ... -
Java编程思想第四版——第十三天
2012-04-18 12:08 6662012-04-18 108-118/913 Java编 ... -
Java编程思想第四版——第十二天
2012-04-09 10:58 7342012-04-09 102-108/913 Java编 ... -
Java编程思想第四版——第十一天
2012-04-05 12:21 8192012-04-05 Java编程思想第四版——第十一天 ... -
Java编程思想第四版——第九天
2012-03-30 14:59 6522012-03-30 80-97/913 Java编程思想第 ... -
Java编程思想第四版——第八天
2012-03-29 12:09 4832012-03-29 76-80/913 3.6 自动递增和 ... -
Java编程思想第四版——第七天
2012-03-28 12:24 6572012-03-28 70-76/913 昨天找 ... -
Java编程思想第四版——第六天
2012-03-27 13:02 5282012-03-27 66-70/913 最近两 ... -
Java编程思想第四版——第五天
2012-03-23 15:09 9432012-03-23 60-66/913 2.5 方法、参数 ... -
Java编程思想第四版——第四天
2012-03-22 12:41 5892012-03-22 54-60/913 第二章 ... -
Java编程思想第四版——第三天
2012-03-21 12:40 5692012-03-21 47-54/913 1.12 并 ... -
Java编程思想第四版——第二天
2012-03-20 13:54 729今天本来以为进度可以 ... -
Java编程思想第四版——第一天
2012-03-19 15:57 784Java已经丢手一年了 ...
相关推荐
《Thinking in Java》是Bruce Eckel创作的一部Java编程经典著作,英文版的第四版更是深受全球程序员喜爱的参考资料。这本书全面深入地介绍了Java语言,不仅适合初学者,也对有经验的程序员提供了宝贵的洞见。它以...
《Java编程思想》是 Bruce Eckel 的经典著作,第四版更是深受广大Java程序员喜爱。这本书深入浅出地讲解了Java语言的核心概念和技术,包括面向对象编程、类与对象、继承与多态、接口、异常处理、集合框架、泛型、...
第四版在原有的基础上进行了更新,加入了更多现代Java特性,如泛型、枚举、集合框架等。 1. **面向对象编程**:Java是一种纯面向对象的语言,理解类、对象、接口以及它们之间的关系至关重要。类是对象的蓝图,通过...
### 《用Java思考》第四版 —— Bruce Eckel 著 #### 书籍概述 本书为《用Java思考》的第四版,作者是Bruce Eckel,MindView公司的总裁。这本书自出版以来就受到了广大Java程序员的高度评价。本书并非扫描版本,...
- **第四章:树** —— 深入讨论了树的各种类型(如二叉树、平衡树等)及其操作,如遍历、插入和删除。 - **第五章:散列** —— 介绍了散列表的工作原理、散列函数的设计以及处理冲突的方法。 - **第六章:优先队列...
第四版作为最新的版本,涵盖了从基础语法到高级特性的全面内容,旨在帮助读者理解并掌握Java编程的精髓。这本书的练习题是检验学习成果、提升编程技能的重要途径。以下是对这些练习题答案的一些关键知识点的解析: ...
### 第十五届蓝桥杯Java A组参赛总结 #### 知识点一:比赛规则与流程 - **考试流程**:参赛者需首先下载题目,使用官方提供的解压密码解压试题包。整个考试时长为4小时。 - **提交方式**: - 在考试过程中,参赛...
提高部分从第十一章至第十六章,重点关注Java语言在实际编程中的高级应用,旨在帮助读者掌握更复杂的编程技巧,以便进行大型Java应用程序的开发。这部分包括: 1. **对象容器类**:第十一章讲解了如何使用Java提供...
第10章的四个PPT文件主要围绕面向对象建模展开,从不同角度深入讲解如何进行对象建模,包括建模的基本概念、步骤以及如何将这些模型转化为Java代码。这部分内容对于理解面向对象编程的核心思想——封装、继承和多态...
Java面向对象程序设计是计算机科学中的一个重要领域,它基于面向对象编程思想,使得代码更加模块化、可维护和可重用。张亦辉版的教材是许多初学者和专业人士学习这一主题的参考资料。该压缩包包含了该教材1-10章的...
《安卓Android源码——四次元新浪微博客户端项目》 这个项目是针对安卓平台的一个开源实现,旨在解析并展示了新浪微博客户端的源代码。源码分析对于开发者来说是宝贵的资源,能够帮助我们深入理解移动应用的开发...
《Java面向对象程序设计(第2版)》是一本深入探讨Java编程的教材,尤其注重面向对象编程思想的讲解。本书通过丰富的实例代码,帮助读者理解并掌握Java语言的核心概念和面向对象编程的关键要素。在提供的压缩包文件...
在Java编程中,面向对象的程序设计(Object-Oriented Programming,简称OOP)是核心概念之一。这一章通常会深入讲解OOP的四大基本特征:封装、继承、多态和抽象。封装是将数据和操作数据的方法绑定在一起,形成一个...