Поэтому мое задание для программирования состоит в том, чтобы сделать программу, которая считывает десять пользовательских входов, а затем информирует пользователя о том, какая из них имеет наибольшее значение. Как показано ниже, он делает это отлично, и я получил 100% от задания.
Тем не менее, я хочу отполировать структуру кодирования, чтобы каждый раз, когда пользователь вводил большее значение после того, как ему было предложено это сделать (например, 0,1,2,3,4,5,6,7,8,9) выход не будет отображаться 1,2,3,4,5,6,7,8 и 9; с конечным выходом 9.
Как я могу избавиться от всех значений, предшествующих 9, так что выход будет равен 9?
import java.util.Scanner;
class Army{
public static void main(String[] args){
// declares an array of doubles
double[] inputArray = new double[10];
// allocates memory for 10 doubles
System.out.println("Please enter ten numbers.");
try {
Scanner in = new Scanner(System.in);
for (int j = 0; j < inputArray.length ; j++) {
inputArray[(int) j] = in.nextDouble();
}
}
catch (Exception e) {
e.printStackTrace();
}
double maxValue = inputArray[0];
for (int i=0; i < inputArray.length; i++) {
if (inputArray[i] > maxValue){
maxValue = inputArray[i];
System.out.println("The largest number is "+maxValue+".");
}else{
System.out.println("The largest number is "+inputArray[i]+".");
// optional: display only one answer.
}
}
}
}
Просто измените свой код следующим образом.
double maxValue = inputArray[0];
for (int i = 0; i < inputArray.length; i++) {
if (inputArray[i] > maxValue) {
maxValue = inputArray[i];
// removed print from here
} else {
// removed print from here too
}
}
System.out.println("max value is: "+maxValue); //print max from out side the loop