CS1110     Lab 01. Expressions, variables, declarations, assignments     Spring 2009 

Name ________________________________ Cornell net id _____________

This lab deals with Java expressions and assignment statements. Below is a list of expressions, some followed by questions. Type each expression into DrJava, hit the enter key to have it evaluated, record its value after the expression on this paper, and answer any question to the best of you ability. Do not simply write down what you think is the value of an expression; write down only what DrJava says it is. To save space, some of the rows have expressions in both columns. Do the left-column one first, then the right-column one.

Rather than type an expression, open this handout (from the course webpage) in a browser, copy an expression from the browser page, and paste it into the Interactions pane. That will save time and prevent mistakes. Also, you can use the uparrow key to obtain a previous expression, edit the expression, and hit the return key to have the modified expression evaluated.

When finished, show this sheet to your lab instructor, who will record that you did it. If you do not finish during the lab, finish it within the next few days and show it to your lab instructor the next time you see them.

Don't waste time! If you don't understand something, ask your lab instructor or a consultant immediately! You should understand HOW each expression is evaluated, and if an answer doesn't make sense, ask someone. The lab instructors and consultants are in the lab to help. They will look over your shoulder from time to time and give you advice.

INT EXPRESSIONS 5 + 2
5 + 2 * 5 (5 + 2) * 5
4 - 3 - 3 4 - (3 - 3)
-4 - -4 - -4  
6 / 2 6 / 3
6 / 4 Why isn't 6/4 = 1.5?
7 % 2 8 % 3
6 % 3 What is the name of operator %?
Integer.MIN_VALUE Integer.MIN_VALUE - 1
Why does Integer.MIN_VALUE - 1 have such a funny value?  
Integer.MIN_VALUE Integer.MIN_VALUE + 1
Integer.MAX_VALUE Integer.MAX_VALUE - 1
Integer.MAX_VALUE + 1  





DOUBLE EXPRESSIONS 1 + 1.99
5.0 + 2.0 (5 + 2.1) * 5
4.0 - 3 - 3 4.0 - (3 - 3)
-4.0 - -4 - -4  
6.0 / 2 6.0 / 4
6.0 % 3 6 % 4
-6.0 % 3 -6.0 % 4
Double.MIN_VALUE Double.MIN_VALUE - 1
Double.MAX_VALUE Double.MAX_VALUE + 1
Double.MAX_VALUE + Double.MAX_VALUE  


CASTING  
(double) 4 (int) 4
(double) 7 / 4 (double) (7 / 4)
Which operator has higher precedence, casting or division?  
(int) 5.3 (double) (int) 5.3
(int) (int) 5.3 (double) (double) 4
(int) 5.3 (int) - 5.3
5 + 7 / 4 (double) 5 + 7 / 4
5 + 7 / (double) 4  



FUNCTION CALLS  
Math.min(25, 4) In the function call on the left, the two constants 25 and 4 are called the arguments of the call.
Math.max(25, 4) Math.min(25, Math.max(27, 4))

Math.abs(25)

Math.abs(- 25)
Math.ceil(25.6) Math.floor(25.6)
Math.ceil(- 25.6) Math.floor(- 25.6)
Math.abs(Math.min(-25, -4))  


BOOLEAN EXPRESSIONS  
true true && false
true || false What is the name of operator && ?
false true && true
true || true What is the name of operator || ?
!true What is the name of operator ! ?
!false !!false
true && false && true true || false || true
true || (false && true) true && (true || false)
3 < 5 3 < 5 && 5 < 3
0 <= 4 && 4 < 5  
false&& (5 / 0 == 1)    why does this work? (5 / 0 == 1) && false        why doesn't this work?



STRING EXPRESSIONS  
"Truth " + "is " + "best" ("Truth " + "is ") + "best"
"Truth " + ("is " + "best") 56 + "" + 56
"" + 4 / 2 ("" + 4) / 2 —Gives an error message. Why?
"" + (4 / 2) What does + do if at least one operand is String?
4 + 2 + "" 4 + (2 + "")





VARIABLES, DECLARATIONS, ASSIGNMENTS.
It is important that you learn the difference between a declaration and an assignment statement.

Write down the purpose of a declaration like "int j;".
To the right, explain how the assignment statement
"j= j + 5;" is executed.

 




int j; (There will be no answer from the declaration to the left)
int j; What happens when you try to declare a variable twice? (May vary depending on which version of DrJava you are using.)

j Does a newly declared variable have a value?
j= 2; (To the left is your first assignment statement)
j j+4
j= j + 9;  
j (You can see what assigning to j did)
The following shows you that in the interactions pane, you don't have to declare a variable before using it. But in a Java program, you have to.  
k= 5; j + k
w= j + k; w
w; (if you follow an expression with a semicolon, you don't see its value)