Реализовать сортировку и вызов функций

я пытаюсь отсортировать массив чисел

public class Sort {
public static void main(String args[]){
    int [] array = new int[10];
    for ( int i = 0 ; i < array.length ; i++ ) {
        array[i] = ((int)(Math.random()*100+1));
        }
    Arrays.sort( array );
    for ( int i = 0 ; i < array.length ; i++ ) {
        System.out.println(array[i]);
        }
  } 
}

и он работал нормально, затем я попытался включить его в функцию и вызвать ее из основной функции

public class Sort {
    public void Implement () {
     int [] array = new int[10];
        for ( int i = 0 ; i < array.length ; i++ ) {
            array[i] = ((int)(Math.random()*100+1));
            }
    Arrays.sort( array );
    }
}
   public static void main(String[] args){
        Sort s = new Sort();
        s.Implement (array);
        for (int i = 0 ; i < array.length ; i++) {
            System.out.println(array[i]);
        }
    }

тогда все ошибки появляются в цикле for, несмотря на то, что он правильный, в чем проблема?

Вам нужно либо передать переменную array из main в s.implement(array), либо вернуть ее из s.implement.

HBo 02.05.2018 12:18

Я думал, что пропущу его, когда писал эту строку 's.Implement (array);'

E.A 02.05.2018 12:21

вы сделали, но сама переменная array не существует в области main, поэтому вам нужно объявить ее

HBo 02.05.2018 12:22
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
3
52
2

Ответы 2

Подпись (формальный параметр) метода Implement () - это void в его определении. Однако вы пытаетесь передать фактический аргумент, которым является array в вашем примере, методу в main(). Вот почему вы получаете ошибку времени компиляции.

Проблема в использовании s.Implement (array);.

Ниже приведены ошибки в вашем коде:

  • Sort.Implement() не ожидает никаких аргументов, но вы их передаете.
  • В строке s.Implement (array); вы не создали переменную array. Но вы используете его в этой и более поздних строках.

Ниже приведен исправленный рабочий пример. Смотрите это здесь работают:

class Sort 
{
    public int[] Implement () {
        int [] array = new int[10];
        for ( int i = 0 ; i < array.length ; i++ ) {
            array[i] = ((int)(Math.random()*100+1));
        }
        Arrays.sort( array );

        return array;
    }
}

class Test
{
   public static void main(String[] args){
        Sort s = new Sort();
        int[] array = s.Implement ();
        for (int i = 0 ; i < array.length ; i++) {
            System.out.println(array[i]);
        }
    }
}

Примечания: Основываясь на вашем коде и использовании методы, кажется, что вы новичок в программировании. Так что сначала найдите время, чтобы понять концепции.

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