Previous sample programs were simple step-by-step
solutions. Every time each program ran, it executed exactly
the same sequence of commands. That approach is only
adequate for simple problems like calculations.
More complex problems require logical
decisions, enabling a program to perform different
commands
depending on the data given.
In this sample program, the user types in "km" or "mi" or "ft" or
"liter", and the program responds with
conversion factors to other units. So it produces different
output, depending on the input given.
Input
public String input(String prompt) { return javax.swing.JOptionPane.showInputDialog(null,prompt); }
Java does not contain specific input
and output commands, but
classes like JOptionPane do contain methods
that can perform equivalent functions. The method showInputDialog makes a
window pop-up to accept user input.
By wrapping this command
inside the public String input
method, we create a new command called input.
String unit = input("Type a unit");
This command accepts input from the user and saves the user's
answer in a variable
called unit.
Decisions
if ( unit.equals("km") )
{ println("1 km = 1000 m = 0.6 miles"); }
The if..
command checks whether the user typed "km".
If so, it executes the following command
block contained in { curly braces }.
By using a sequence of if... commands, the program can
respond appropriately to a variety of inputs.