#java
#java
Вопрос:
import java.util.Scanner;
public class sumAverageUsingArray {
public static void main(String[] args) {
/**
* LargestValue
*/
final int LENGTH = 5;
int[] values = new int[LENGTH];
int currentSize = 0;
Scanner sc = new Scanner(System.in);
System.out.println("Enter values and Q to Quit");
while (sc.hasNextInt() amp;amp; currentSize < values.length) {
values[currentSize] = sc.nextInt();
currentSize ;
}
sc.close();
int largest = values[0];
for (int i = 1; i < currentSize; i ) {
if (values[i] > largest) {
largest = values[i];
}
}
System.out.printf("Largest is : %d", largest);
}
Ожидается:
5,4,3,2,1
Самый большой: 5
Актуально: 6,5,4,3,2,1
Самый большой: 6
Класс Scanner принимает дополнительный ввод, который не влияет на поведение программы, как это исправить?
Комментарии:
1. Ваш ввод разделен запятой или пробелом? Потому что в вашем примере вы используете запятую, но ваш код не будет работать должным образом, если вы используете этот ввод.
Ответ №1:
Заменить
while (sc.hasNextInt() amp;amp; currentSize < values.length) {
Автор:
while (currentSize < values.length amp;amp; sc.hasNextInt()) {
hasNextInt()
принудительно блокируется до тех пор, пока вы не введете что-либо, чтобы узнать, есть ли … следующий int или нет. Если вы введете значение int, оно может вернуть true. Если вы введете что-то еще, это может вернуть false . Если вы ничего не вводите, ему нужно подождать, пока вы что-то введете, чтобы знать, что возвращать.