CS 1401 Homework #4

Date Assigned: Tuesday, February 8, 2005

Due Date: Thursday, February 10, 2005, before the beginning of your lecture section.

Goal: the goal of this assignment is to learn how to deal with numbers in Java.


1. What will be the result of the following expressions:

(a) 2/1/4


Java computations are left to right, so we first compute 2/1=2, then
2/4=0. The result is 0.

(b) 2.0/1.0/4.0


First we compute 2.0/1.0=2.0, then 2.0/4.0=0.5.

(c) a++ (if a was originally 2)

Answer: 3

(d) --a (if a was originally 2)

Answer: 1

(e) 2%3%4


First, we compute 2%3=2, then 2%4=2. The result is 2.

(f) -2.0%-0.9*-4.0


First, we compute -2.0%-0.9=-0.2, then -0.2%-4.0=-0.2. The result is -0.2.

2. Let a be a variable of type int. Use type casting to assign a's value to the following variables:

(a) longA of type long


longA = (long)a;
(b) doubleA of type double


doubleA = (double)a;
(c) stringA of type string


stringA = "" + a;

Comment: The book does not explicitly call this transformation 
type casting, so if you answered that type casting is not possible in
case (c), it is also a correct answer.
Explain in which of these three cases we can use type conversion instead of type casting.
Answer: type conversion is possible in the first two cases but not for 
conversion to a string.

If type conversion is possible, what is the advantage of type casting?
Answer: types casting make type transformation more explicit, 
thus clearer to readers of the code and less error-prone.