3:控制程序流程 就像有感知力的生物那样,程序应该有能力操控它的世界,并且在执行过 程中作决定 Java让你用运算符( operator)来控制数据,用执行控制语句来作决定。 Java继承了C++,因此C和C++程序员会对它的语句和运算符感到很 亲切。不过Java也作了一些改进和简化。 如果你觉得这一章还是有点难,那么先去看看本书附送的多媒体CD ROM: Foundations for Java。它里边包括了讲课的录音,幻灯片,练 习以及答案。设计这个课程的目的就是要让你尽快地掌握学习Java所需 的基础知识。 使用Java运算符 运算符需要一到两个参数,并且会产生一个新的值。参数的使用方法与普 通方法的调用不同,但是结果是相同的。加(+),减(-),乘(*),除 (/),以及等号(=)的用法同其它编程语言完全相同。 运算符作用于操作数( operand),并且会产生一个值。此外,运算符还被 用于修改操作数的值。这被称为副作用( side effect)。我们经常看到的, 用运算符来修改操作数的操作就是利用了这种副作用,但是你应该记住, 这种做法所产生的值也是可以用的,它同那些没有副作用的运算符是一 样 几乎所有的运算符都只能作用于 primitive。但是‘= 以及 !=’是例外,它们可以作用于任何对象(由此也是对象方面一个很让人 头晕的问题。)此外, String类也支持‘+’和‘+=’。 优先级 当一个表达式包含多个运算符的时候,运算符的优先顺序会决定该怎样计 算这个表达式的值。Java有一套判断计算顺序的特殊规则。其中最简单 的一条就是“先乘除后加减”。程序员们经常会把其余的优先顺序都给忘 了,所以你应该使用括号来明确的指明计算的顺序。例如: a=x+y-2/2+z 同一个表达式,加上两组括号之后就会有截然不同的意思 a=x+(y-2)/(2+z); 第2页共48页shhgs@wgqqh.com 2 ✁ ✂ 48 ✁ 3: }mã(0Y¦âvwm;ãA(F^ â*1NO Java Ç¡ (operator)Q!"#!Q1NO Java ö$, C++æò C C++â%º¥A( g &'X^ Java [1,3Ìð()* ÄÅ¡ 3ûmCUYZ/+<< ,-(V./ CD ROM 0Foundations for JavaAË123,©4(56789: ;E<=>?@ ×4â(A(%Ç¡BCrDEF; Java Dî (GHI Java î%3ge×"ºJ03×K(L"(çµM µ(NXOÅ>(ä(+)P(-)Q(*)R (/)E<-S(=)(§Aáâc> 1)1"(operan d )ºJ03×Lò½ T )ïð1"(L TUV1(side effect)Wõ·<g( Qïð1"(1X, V1¡vwYZ TDJ0(L[ÝE(AYÌmV1( 3 ¦ ijDm( Æó;1) p rim itive[=\[==\E< [! =\]½AWÝE1)^¥_(`ò[¥_µ¶3×Ǫ ab(cd)ò½Strin g e[fg[+\[+=\ 3×hi´2jV× (M (k/lºNOwÕ¦@ ×hi´(LJava m3mno@l(pqrs§*b)t (3uÍ/QRäPÏâ%Wõ·ºP§o(k/lƬv ,DE¡vwç3SQwx(yw@(l]Ä0 a = x + y - 2/2 + z; 3×hi´äJez3Suºm{|X(¹}0 a = x + (y - 2)/(2 + z);