the assignment expressions. the assignment operator in an assignment statement we have seen the...
TRANSCRIPT
![Page 1: The assignment expressions. The assignment operator in an assignment statement We have seen the assignment statement: Effect: var = expr; Stores the value](https://reader035.vdocuments.mx/reader035/viewer/2022070413/5697bfe11a28abf838cb3dfb/html5/thumbnails/1.jpg)
The assignment expressions
![Page 2: The assignment expressions. The assignment operator in an assignment statement We have seen the assignment statement: Effect: var = expr; Stores the value](https://reader035.vdocuments.mx/reader035/viewer/2022070413/5697bfe11a28abf838cb3dfb/html5/thumbnails/2.jpg)
The assignment operator in an assignment statement
• We have seen the assignment statement:
• Effect:
var = expr;
• Stores the value of expression expr in the variable named var
![Page 3: The assignment expressions. The assignment operator in an assignment statement We have seen the assignment statement: Effect: var = expr; Stores the value](https://reader035.vdocuments.mx/reader035/viewer/2022070413/5697bfe11a28abf838cb3dfb/html5/thumbnails/3.jpg)
The assignment expression
• Consider the following arithmetic expression:
int a = 3; int b = 4;
Arithmetic expression: a + b Returns the result: 7
![Page 4: The assignment expressions. The assignment operator in an assignment statement We have seen the assignment statement: Effect: var = expr; Stores the value](https://reader035.vdocuments.mx/reader035/viewer/2022070413/5697bfe11a28abf838cb3dfb/html5/thumbnails/4.jpg)
The assignment expression (cont.)
• Definition: assignment expression:
Result returned by an assignment expression:
var = expr
Result of var = expr is equal to the value of expr
![Page 5: The assignment expressions. The assignment operator in an assignment statement We have seen the assignment statement: Effect: var = expr; Stores the value](https://reader035.vdocuments.mx/reader035/viewer/2022070413/5697bfe11a28abf838cb3dfb/html5/thumbnails/5.jpg)
The assignment expression (cont.)
• Note:
• The assignment operator will (still) update the value stored inside the variable var
• In addition to updating the variable. the assignment operator also returns a value
![Page 6: The assignment expressions. The assignment operator in an assignment statement We have seen the assignment statement: Effect: var = expr; Stores the value](https://reader035.vdocuments.mx/reader035/viewer/2022070413/5697bfe11a28abf838cb3dfb/html5/thumbnails/6.jpg)
The assignment expression (cont.)
• Example:
public class AssignExpr01 { public static void main(String[] args) { int a; a = 0; System.out.println(a); System.out.println(a = 2); // Prints 2 System.out.println(a); // Prints 2 } }
![Page 7: The assignment expressions. The assignment operator in an assignment statement We have seen the assignment statement: Effect: var = expr; Stores the value](https://reader035.vdocuments.mx/reader035/viewer/2022070413/5697bfe11a28abf838cb3dfb/html5/thumbnails/7.jpg)
The assignment expression (cont.)
• Explanation:
• System.out.println(a = 2) will print the value between its brackets
• The expression between the brackets is:
which is an assignment expression
• The assignment expression returns the value 2
Therefore, System.out.println will print the value 2
a = 2
![Page 8: The assignment expressions. The assignment operator in an assignment statement We have seen the assignment statement: Effect: var = expr; Stores the value](https://reader035.vdocuments.mx/reader035/viewer/2022070413/5697bfe11a28abf838cb3dfb/html5/thumbnails/8.jpg)
The assignment expression (cont.)
• Example Program: (Demo above code) – Prog file:
http://mathcs.emory.edu/~cheung/Courses/170/Syllabus/04/Progs/AssignExpr01.java
• How to run the program:
• Right click on link and save in a scratch directory
• To compile: javac AssignExpr01.java
• To run: java AssignExpr01
![Page 9: The assignment expressions. The assignment operator in an assignment statement We have seen the assignment statement: Effect: var = expr; Stores the value](https://reader035.vdocuments.mx/reader035/viewer/2022070413/5697bfe11a28abf838cb3dfb/html5/thumbnails/9.jpg)
The result returned by the assignment operators
• We have seen many different assignment operators:
• =
• +=
• -=
• *=
• /=
• %=
![Page 10: The assignment expressions. The assignment operator in an assignment statement We have seen the assignment statement: Effect: var = expr; Stores the value](https://reader035.vdocuments.mx/reader035/viewer/2022070413/5697bfe11a28abf838cb3dfb/html5/thumbnails/10.jpg)
The result returned by the assignment operators (cont.)
• Result returned by the assignment operators:
Operator Example Returned value
= a = 2 2
+= a += 2 a + 2
-= a -= 2 a - 2
*= a *= 2 a * 2
/= a /= 2 a / 2
%= a %= 2 a % 2
![Page 11: The assignment expressions. The assignment operator in an assignment statement We have seen the assignment statement: Effect: var = expr; Stores the value](https://reader035.vdocuments.mx/reader035/viewer/2022070413/5697bfe11a28abf838cb3dfb/html5/thumbnails/11.jpg)
The result returned by the assignment operators (cont.)
• Example: public class AssignExpr02 { public static void main(String[] args) { int a; a = 5; System.out.println(a = 2); a = 5; System.out.println(a += 2); a = 5; System.out.println(a -= 2); a = 5; System.out.println(a *= 2); a = 5; System.out.println(a /= 2); a = 5; System.out.println(a %= 2); } }
![Page 12: The assignment expressions. The assignment operator in an assignment statement We have seen the assignment statement: Effect: var = expr; Stores the value](https://reader035.vdocuments.mx/reader035/viewer/2022070413/5697bfe11a28abf838cb3dfb/html5/thumbnails/12.jpg)
The result returned by the assignment operators (cont.)
• Output:
2 7 3 10 2 1
![Page 13: The assignment expressions. The assignment operator in an assignment statement We have seen the assignment statement: Effect: var = expr; Stores the value](https://reader035.vdocuments.mx/reader035/viewer/2022070413/5697bfe11a28abf838cb3dfb/html5/thumbnails/13.jpg)
The result returned by the assignment operators (cont.)
• Example Program: (Demo above code) – Prog file:
http://mathcs.emory.edu/~cheung/Courses/170/Syllabus/04/Progs/AssignExpr02.java
• How to run the program:
• Right click on link and save in a scratch directory
• To compile: javac AssignExpr02.java
• To run: java AssignExpr02
![Page 14: The assignment expressions. The assignment operator in an assignment statement We have seen the assignment statement: Effect: var = expr; Stores the value](https://reader035.vdocuments.mx/reader035/viewer/2022070413/5697bfe11a28abf838cb3dfb/html5/thumbnails/14.jpg)
Priority and associativity of the assignment operators
• Priority of the assignment operators:
• All of the assignment operators have the lowest priority among all operators in Java
![Page 15: The assignment expressions. The assignment operator in an assignment statement We have seen the assignment statement: Effect: var = expr; Stores the value](https://reader035.vdocuments.mx/reader035/viewer/2022070413/5697bfe11a28abf838cb3dfb/html5/thumbnails/15.jpg)
Priority and associativity of the assignment operators
• Associativity of the assignment operators:
• All of the assignment operators are right associative
• Meaning:
• When there are multiple assignment operators in an expression, the expression is evaluate from right to left
![Page 16: The assignment expressions. The assignment operator in an assignment statement We have seen the assignment statement: Effect: var = expr; Stores the value](https://reader035.vdocuments.mx/reader035/viewer/2022070413/5697bfe11a28abf838cb3dfb/html5/thumbnails/16.jpg)
Priority and associativity of the assignment operators (cont.)
• Example: cascaded assignment
public class AssignExpr03 { public static void main(String[] args) { int a, b, c; c = b = a = 4 + 2; // Cascade assignment System.out.println(a); // Prints 6 System.out.println(b); // Prints 6 System.out.println(c); // Prints 6 } }
![Page 17: The assignment expressions. The assignment operator in an assignment statement We have seen the assignment statement: Effect: var = expr; Stores the value](https://reader035.vdocuments.mx/reader035/viewer/2022070413/5697bfe11a28abf838cb3dfb/html5/thumbnails/17.jpg)
Priority and associativity of the assignment operators (cont.)
• Explanation: c = b = a = 4 + 2; is evaluated as follows:
c = b = a = 4 + 2; higher priority ^^^^^ Reduces to:
c = b = a = 6; from right to left ^^^^^ assigns 6 to variable a and returns 6
Reduces to:
c = b = 6; from right to left ^^^^^ assigns 6 to variable b and returns 6
Reduces to:
c = 6; assigns 6 to variable c (and returns 6) ^^^^^
![Page 18: The assignment expressions. The assignment operator in an assignment statement We have seen the assignment statement: Effect: var = expr; Stores the value](https://reader035.vdocuments.mx/reader035/viewer/2022070413/5697bfe11a28abf838cb3dfb/html5/thumbnails/18.jpg)
Priority and associativity of the assignment operators (cont.)
• Example Program: (Demo above code) – Prog file:
http://mathcs.emory.edu/~cheung/Courses/170/Syllabus/04/Progs/AssignExpr03.java
• How to run the program:
• Right click on link and save in a scratch directory
• To compile: javac AssignExpr03.java
• To run: java AssignExpr03
![Page 19: The assignment expressions. The assignment operator in an assignment statement We have seen the assignment statement: Effect: var = expr; Stores the value](https://reader035.vdocuments.mx/reader035/viewer/2022070413/5697bfe11a28abf838cb3dfb/html5/thumbnails/19.jpg)
Exercise
• What will the following Java program print:
public class AssignExpr04 { public static void main(String[] args) { int a, b, c; a = 1; b = 1; c = 2; c *= b -= a += 1 + 2; System.out.println(a); System.out.println(b); System.out.println(c); } }
![Page 20: The assignment expressions. The assignment operator in an assignment statement We have seen the assignment statement: Effect: var = expr; Stores the value](https://reader035.vdocuments.mx/reader035/viewer/2022070413/5697bfe11a28abf838cb3dfb/html5/thumbnails/20.jpg)
Exercise (cont.)
• Answer:
4
-3
-6
![Page 21: The assignment expressions. The assignment operator in an assignment statement We have seen the assignment statement: Effect: var = expr; Stores the value](https://reader035.vdocuments.mx/reader035/viewer/2022070413/5697bfe11a28abf838cb3dfb/html5/thumbnails/21.jpg)
Priority and associativity of the assignment operators (cont.)
• Example Program: (Verify for yourself...) – Prog file:
http://mathcs.emory.edu/~cheung/Courses/170/Syllabus/04/Progs/AssignExpr04.java
• How to run the program:
• Right click on link and save in a scratch directory
• To compile: javac AssignExpr04.java
• To run: java AssignExpr04