Skip to main content

more options

Lab 01. Expressions, variables, declarations, and assignments 

This document provides you with some guided instructions to help you get familiar with Java expressions, variables, declarations, and the assignment statement. You will use DrJava, so you will gain familiarity with this IDE.

You don't have to do this lab, but doing it will help you. Also, doing it during consulting hours, and in the CS101J room, will give you a chance to ask questions at any time. After doing the lab, a consultant will be happy to go over it with you to answer questions and show you mistakes (if you have any).

Below are 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 is its value.

Rather than type an expression character for character, open this handout (from the course webpage) in a browser, copy an expression from the browser page, and paste it into the DrJava Interactions pane. That will save you time and prevent you from making typing mistakes. However, from time to time, it may make sense when in the Interactions pane to hit the uparrow key to obtain a previous expression, edit it, and hit the return key to have the modified expression evaluated.

The last part of this lab assignment concerns variables, declarations, and assignment statements, so you will be typing in declarations and assignments as well.

To save space, some of the rows have expressions in both columns. "Do" the left-column one first, then the right-column one.

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

5.0 + 2.0 1 + 1.99
(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  

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 — Why does this give an error message?
"" + (4 / 2)
What does + do if at least one operand is a String?
4 + 2 + "" 4 + (2 + "")

Function calls

Math.min(25, 4)
In the function call on the left, what are the two constants 25 and 4 called?
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))  

Variables, declarations, and assignments

It is important that you learn early in the game the difference between a declaration and an assignment statement. Below, please write down the purpose of a declaration like int j;.

Below, write down how the assignment statement j= j + 5; is executed.


int j;
(There will be no answer from this declaration.)
int j;
What happens when you try to declare a variable twice?


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.)