Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2017, 21:20   #1
АлексейP
Пользователь
 
Регистрация: 22.10.2017
Сообщений: 17
По умолчанию Java. Методы.

Доброго вечера!

Хотелось бы задать вопрос касательно этого кода:

Код:
public static void getTop(int[] arr, int what) {
        int top = arr[0];
        for (int i = 0; i < arr.length; i++) {
           if (what == 1) {
                if (arr[i] > top) {
                    top = arr[i];
                }
            } else {
                if (arr[i] < top) {
                    top = arr[i];
                }
            }
        }
        writeln(top);
    }
Если переменная what нигде не инициализирована (ни до этого метода, ни после него в данном пакете переменная what никак не инициализирована), то почему эта переменная принимает значение единицы?
(При выполнении кода метод getTop ищет именно максимальный элемент массива)

Заранее благодарю.

Последний раз редактировалось АлексейP; 11.11.2017 в 21:25.
АлексейP вне форума Ответить с цитированием
Старый 11.11.2017, 21:44   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

В смысле не инициализирована? Это ж параметр.

Код:
myMethod(42);
Код:
x = sqrt(4);
Код:
int minValue = min(42, 999);
Код:
getTop(someArray, 1);
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 11.11.2017, 22:21   #3
АлексейP
Пользователь
 
Регистрация: 22.10.2017
Сообщений: 17
По умолчанию

Что-то я запутался.
Параметры - это входящие значения, которые передаются в метод.
Но если мы эти значения методу ПЕРЕДАЕМ, значит мы их где-то взяли..
Допустим даже, что мы их не инициализировали, тогда их значения будут равны значениям по умолчанию указанной переменной. Для типа int значение по умолчанию - нуль, здесь же - единица.

Где в моих рассуждениях кроется ошибка?
АлексейP вне форума Ответить с цитированием
Старый 11.11.2017, 22:26   #4
АлексейP
Пользователь
 
Регистрация: 22.10.2017
Сообщений: 17
По умолчанию

Извиняюсь, я слеп.
В дальнейшем коде идет следующая конструкция, в которой фигурирует строка
Код:
getTop(a, 1);
в которой, собственно, и определяется, что значение what станет единицей.

То есть, если я правильно понял, мы объявляем в методе не готовые конкретные значения, а объявляем тип переменных, с которыми метод будет работать, а затем передаем ему значение данной переменной, в зависимости от значения которой он и будет руководствоваться к выполнению последующих действий.

Тему, наверное, можно удалить, так как, кроме очевидности моей невнимательности, никакой пользы она не несет.
АлексейP вне форума Ответить с цитированием
Старый 12.11.2017, 10:39   #5
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Все мы когда-то начинали и задавали глупые вопросы, не переживайте
Лучше лишний раз спросить, но разобраться. Опять же, пока формулируешь вопрос, в голове прояснится
Black Fregat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Методы в Java StasOLOLO Общие вопросы по Java, Java SE, Kotlin 2 24.08.2017 13:57
Методы поиска (Хеширование) - Java SE INIFREY Помощь студентам 15 25.11.2015 10:38
Java!В программе создать одиночные объекты и массив объектов класса и вызвать методы. Andros96 Помощь студентам 0 17.11.2013 15:41
Классы и методы в JAVA KIKSa Помощь студентам 0 07.04.2013 19:22
Основные методы шифрования данных..в Java Ailita Помощь студентам 0 26.10.2011 20:20