Массив Java с minValue

Я новичок в Java. Я создал класс и метод, которые должны возвращать минимальное число в массиве. Но я не могу понять, почему он не работает.

Ниже приведен код.

package array;
import java.util.Scanner;

class Value {
    public static int minValue(int[] arr) {
        for(int e : arr) {
            if (arr[0] > e) {
                arr[0] = e;
            }
        }
        return arr[0];
    }
}
public class ArrayTest {

public static void main(String[] args) {
    int[] arr = new int[5];
    System.out.print("Input Number : ");
    Scanner sc = new Scanner(System.in);

    for(int e : arr) {
        e = sc.nextInt();
    }

    System.out.println("min : " + Value.minValue(arr));
}

Результат: «мин: 0». В чем проблема с моим кодом ???

e = sc.nextInt(); Вы никогда не добавляете e в массив.
Johnny Mopp 17.10.2018 20:48

Посмотрите на это: stackoverflow.com/questions/18169703/…. Вы должны использовать нормальную версию для каждой версии, а не для каждой версии для заполнения вашего массива.

mettleap 17.10.2018 20:50

Спасибо всем. Теперь я знаю причину. : D

David.J 17.10.2018 21:00
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
120
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

я думаю это может тебе помочь

    public static int minValue(int[] arr) {
        int min = Integer.MAX_VALUE;
        for(int e : arr) {
            if (e < min) {
                min = e;
            }
        }
        return min;
    }

а также изменить это

 for(int i = 0; i < arr.length; i++) {
    arr[i] = sc.nextInt();
 }

В методе minValue не было ничего плохого.

Ivar 17.10.2018 20:54

если этот метод используется, он изменит исходный массив с индексом 0

Pandey Amit 17.10.2018 20:55

Хорошо, позвольте мне попробовать и запустить его. Вы создаете массив целых чисел с длиной индекса 5, запрашиваете у пользователя 5 чисел, добавляете эти числа в массив arr по мере их ввода пользователем. Я вижу это в цикле for

for(int e : arr) {
    e = sc.nextInt();
}

e назначается пользовательский ввод, но он не передает его в массив arr. Похоже, вам нужно добавить оператор для передачи / добавления пользовательского ввода в массив.

Я бы использовал такой цикл for; for (int i = 0; i <arr.length (); i ++) {arr [i] = sc.nextInt ();}

Leictreonaic 17.10.2018 21:42

Чтобы сохранить свой код с for для каждого цикла, вы просто замените e на arr [e]

Leictreonaic 17.10.2018 22:01
Ответ принят как подходящий

вам нужно изменить только метод ввода, ничего больше, Я добавил правильный, вы можете использовать это.

  int i = 0;
  for (int e: arr) {
  arr[i] = sc.nextInt();
  i++;
  }

Другие вопросы по теме