Let us consider again the problem of finding the maximum of a set of reals in input. This time we make no assumption, i.e.,:
In this case, a possible solution is the following.
String s; // current string in input
double r; // current real
double max = 0; // current maximum
boolean found; // indicates whether at least one value was input
found = false;
s = JOptionPane.showInputDialog("Input a real");
while (s != null) {
r = Double.parseDouble(s);
if (!found || (r > max)) {
max = r;
found = true;
}
s = JOptionPane.showInputDialog("Input a real");
}
if (found)
System.out.println("maximum = " + max);
else
System.out.println("empty set of values");
Note:
There are other means for determining the maximum in the general case discussed here. For example, we could exploit the fact that the wrapper class Double provides the constant MAX_VALUE holding the maximum value a double can have, and initialize the maximum to -MAX_VALUE. We would anyway need a boolean variable to distinguish the case where the user has input no number at all from the case where the user has input just -MAX_VALUE.
String s; // current string in input
double r; // current real
double max; // current maximum
boolean found; // indicates whether at least one value was input
found = false;
max = -Double.MAX_VALUE;
s = JOptionPane.showInputDialog("Input a real");
while (s != null) {
r = Double.parseDouble(s);
found = true;
if (r > max) max = r;
s = JOptionPane.showInputDialog("Input a real");
}
if (found)
System.out.println("maximum = " + max);
else
System.out.println("empty set of values");