Java编程思想第四版——第十天

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之外的其他东西,那么必须确保每一条代码路径都将返回一个值。

转载于:https://www.cnblogs.com/53jin/archive/2012/03/31/2426731.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值