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 consulting 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 your 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;.
|
|
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.) |