# Study the program below, which uses both variables and constants:

Area and Circumference of a Circle

Study the program below, which uses both variables and constants:

// ************************************************************

//  Circle.java

//

//  Print the area of a circle with two different radii

// ************************************************************

public class Circle

{

public static void main(String[] args)

{

final double PI = 3.14159;

” is ” + area);

” is ” + area);

}

}

Some things to notice:

The first three lines inside main are declarations for PI, radius, and area. Note that the type for each is given in these

lines: final double for PI, since it is a floating point constant; int for radius, since it is an integer variable, and double for

area, since it will hold the product of the radius and PI, resulting in a floating point value.

These first three lines also hold initializations for PI, radius, and area. These could have been done separately, but it is

often convenient to assign an initial value when a variable is declared.

The next line is simply a print statement that shows the area for a circle of a given radius.

The next line is an assignment statement, giving variable radius the value 20. Note that this is not a declaration, so the int

that was in the previous radius line does not appear here. The same memory location that used to hold the value 10 now

holds the value 20—we are not setting up a new memory location.

Similar for the next line—no double because area was already declared.

The final print statement prints the newly computed area of the circle with the new radius.

Save this program, which is in file Circle.java, into your directory and modify it as follows:

1. The circumference of a circle is two times the product of Pi and the radius. Add statements to this program so that it

computes the circumference in addition to the area for both circles. You will need to do the following:

Declare a new variable to store the circumference.

Store the circumference in that variable each time you compute it.

Be sure your results are clearly labeled.

2. When the radius of a circle doubles, what happens to its circumference and area? Do they double as well? You can

determine this by dividing the second area by the first area. Unfortunately, as it is now the program overwrites the first

Chapter 2: Data and Expressions

16

area with the second area (same for the circumference). You need to save the first area and circumference you compute

instead of overwriting them with the second set of computations. So you’ll need two area variables and two

circumference variables, which means they’ll have to have different names (e.g., area1 and area2). Remember that each

variable will have to be declared. Modify the program as follows:

Change the names of the area and circumference variables so that they are different in the first and second

calculations. Be sure that you print out whatever you just computed.

At the end of the program, compute the area change by dividing the second area by the first area. This gives you the

factor by which the area grew. Store this value in an appropriately named variable (which you will have to declare).

Add a println statement to print the change in area that you just computed.

Now repeat the last two steps for the circumference.

Look at the results. Is this what you expected?

3. In the program above, you showed what happened to the circumference and area of a circle when the radius went from

10 to 20. Does the same thing happen whenever the radius doubles, or were those answers just for those particular

values? To figure this out, you can write a program that reads in values for the radius from the user instead of having it

written into the program (“hardcoded”). Modify your program as follows:

At the very top of the file, add the line

import java.util.Scanner;

This tells the compiler that you will be using methods from the Scanner class. In the main method create a Scanner

object called scan to read from System.in.

Instead of initializing the radius in the declaration, just declare it without giving it a value. Now add two statements

A prompt, that is, a print statement that tells the user what they are supposed to do (e.g., “Please enter a value