Assingment #69: Do-While Swimming
Code
import java.util.Scanner;
public class DoWhileSwimming {
public static void main( String[] args ) throws Exception {
Scanner keyboard = new Scanner(System.in);
String swimmer1 = "GALLANT";
String swimmer2 = "GOOFUS ";
double minimumTemperature = 79.0; // degrees Fahrenheit
double currentTemperature;
double savedTemperature;
int swimTime;
System.out.print("What is the current water temperature? ");
currentTemperature = keyboard.nextDouble();
savedTemperature = currentTemperature; // saves a copy of this value so we can get it back later.
System.out.println( "\nOkay, so the current water temperature is " + currentTemperature + "F." );
System.out.println( swimmer1 + " approaches the lake...." );
swimTime = 0;
while ( currentTemperature >= minimumTemperature )
{
System.out.print( "\t" + swimmer1 + " swims for a bit." );
swimTime++;
System.out.println( " Swim time: " + swimTime + " min." );
Thread.sleep(600); // pauses for 600 milliseconds
currentTemperature -= 0.5; // subtracts 1/2 a degree from the water temperature
System.out.println( "\tThe current water temperature is now " + currentTemperature + "F." );
}
System.out.println( swimmer1 + " stops swimming. Total swim time: " + swimTime + " min." );
currentTemperature = savedTemperature; // restores original water temperature
System.out.println( "\nOkay, so the current water temperature is " + currentTemperature + "F." );
System.out.println( swimmer2 + " approaches the lake...." );
swimTime = 0;
do
{
System.out.print( "\t" + swimmer2 + " swims for a bit." );
swimTime++;
System.out.println( " Swim time: " + swimTime + " min." );
Thread.sleep(600);
currentTemperature -= 0.5;
System.out.println( "\tThe current water temperature is now " + currentTemperature + "F." );
} while ( currentTemperature >= minimumTemperature );
System.out.println( swimmer2 + " stops swimming. Total swim time: " + swimTime + " min." );
}
}
// When the water temperature is 80.5 *F, Goofus and Gallant swim for the same amount of time.
// When the water temperature is below the minimum, Gallant does not swim at all, but Goofus swims for 1 minute.
// This is because Gallant checks the temperature before swimming, but Goofus checks it after each minute of swimming.
// A "while" looop checks to see if the condition is fulfilled before executing the command.
// A "do while' loop executes the command first, then checks the condition to see if it should stop.
// The "while" loop is the "pre-test loop". It tests the condition first.
// The "do while" loop is the "post-test loop". It tests the condition after executing the command.
Picture of the output