Java程序辅导

C C++ Java Python Processing编程在线培训 程序编写 软件开发 视频讲解

客服在线QQ:2653320439 微信:ittutor Email:itutor@qq.com
wx: cjtutor
QQ: 2653320439
Incremental Java Incremental Java Compound Assignment Statements Scenerio Suppose you had an int variable, sum, and you wanted to add 10 to it. How would you do this? Here's one solution: sum = sum + 10 ; This kind of operation is very common (where 10 is replaced by whatever value you want). It's so common that Java has a shorter way of saying the same thing. Java uses the compound addition assignment operator, which looks like: += (plus sign, followed by equal sign). sum += 10 ; // Add 10 to sum Suppose, instead of adding a value to sum, you wanted to double it? That is, you wanted to multiply it by 2? One way to do this is: sum = sum * 2 ; // Multiply sum by 2 Can you guess the shortcut? If += lets you add the value on the RHS to the LHS, what do you think the operator is for multiplying the value from the RHS to the LHS? Yes, it's *=. sum *= 2 ; // Multiply sum by 2 Binary Operators to Binary Assignment Operators Nearly every binary operator can be made into a compound assignment operator. For example, suppose Java has a binary operator @ (it doesn't, but pretend that it does). Java is very likely to have a binary assignment operator @=. Here's the semantics. lvalue @= rvalue ; is the same as: lvalue = lvalue @ (rvalue) ; Notice that parentheses are added to the rvalue. This is necessary to avoid problems with precedence. For example, consider: x *= 3 + y This is equivalent to: x = x * ( 3 + y ) ; If we didn't put the parentheses, we'd get: x = x * 3 + y ; // WRONG! which, using Java's rule of precedence, would be equivalent x = ( x * 3 ) + y ; // WRONG! and give us a different answer from x = x * ( 3 + y ) ; // RIGHT! Some Compound Assignment Operators Many Java programmers are unaware of how many different compound assignment operators there are. Here's a partial list: +=, *=, /=, -=, %=, &=, &&=, |=, ||=, <<=, >>=, ^=. Basically, if it's a Java binary operator, you should be able to use a binary compound assignment operator as well.