J'ai cherché des réponses à cette question précise, mais je n'ai rien trouvé. Je dois trouver le maximum et le minimum des nombres entrés, mais les valeurs dont j'ai besoin sont dans la boucle for et je ne vois pas comment les utiliser en dehors de celle-ci.
System.out.print("How many numbers do you want to input?");
int totalNumbers = console.nextInt();
int minMax = 0;
for(int i = 1; i <= totalNumbers; i++){
System.out.print("Number " + i + ": ");
int inputNumbers = console.nextInt();
}
System.out.println();
int smallest = Math.min(minMax);
System.out.println("Smallest = " + smallest);
int largest = Math.max(minMax);
System.out.println("Largest = " + largest);
Je n'ai pas besoin de code modifié, mais simplement de quelque chose qui me permettra d'être sur la bonne voie. Merci!
Pouvez-vous remarquer le problème avec la boucle suivante?
for(int i = 1; i <= totalNumbers; i++){
System.out.print("Number " + i + ": ");
int inputNumbers = console.nextInt();
}
Vous exécutez la boucle totalNumbers
fois et chaque fois que vous créez une nouvelle int
avec le nom inputNumbers
et que vous stockez la valeur reçue de la console. De plus, où changez-vous la valeur de minMax
? De plus, Math.min(or max)
ne prend pas de paramètre unique et ne sera même pas compilé.
Maintenant vous avez peu d'options:
Je n'écris aucune solution car je veux que vous l'essayiez vous-même.
Les méthodes Math.min () et Math.max (), selon la documentation Oracle, ne peuvent comparer que deux valeurs. L'importation des valeurs dans un tableau, puis l'exécution d'opérations sur le tableau devraient vous permettre de trouver assez facilement les minimums et les maximums, ainsi que toute autre opération de données.
int[] numbers = new int[totalNumbers];
for (int i = 0; i < totalNumbers; i++) {
numbers[i] = console.nextInt();
}
//Other Operations
Si je ne comprends pas bien ce que vous voulez, ne pouvez-vous pas simplement conserver une variable à l'extérieur de la boucle for et la vérifier?
int minMax = 0;
int smallest = 0;
int largest = 0;
for(int i = 1; i <= totalNumbers; i++){
System.out.print("Number " + i + ": ");
int inputNumbers = console.nextInt();
if(inputNumbers > largest){
largest = inputNumbers;
} else if (inputNumbers < smallest){
smallest = inputNumbers;
}
}
System.out.println();
System.out.println("Smallest = " + smallest);
System.out.println("Largest = " + largest);
C'est le moyen le plus direct et le plus logique de vérifier les valeurs d'entrée et de décider si elles sont les plus petites ou les plus grandes connues à ce jour ( Edit: Sauf si vous require l'utilisation de Math.minMax
)
Pseudocode:
smallest := +∞
largest := -∞
for each number read, n:
if n > largest:
largest := n
if n < smallest:
smallest := n
print the results
Allusion:
Java int
s ne peut pas représenter ±. Utilisez Integer.MIN_VALUE
et Integer.MAX_VALUE
à la place.
Vous pouvez le faire en posant simplement si sinon la condition à l'intérieur de la boucle ... comme