Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для NoobOfJava
0 / 0 / 0
Регистрация: 27.02.2017
Сообщений: 5

Объясните простенький код

08.03.2017, 22:37. Показов 1273. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите разобрать, что делает этот код.
В самом коде есть комментарии.
Извините, в учебнике кое-что не понял, не укрепил в знаниях и теперь боком вылезло, я запутался.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public class Puzzle4 {
    public static void main(String [] args) {
        Puzzle4b [] obs = new Puzzle4b[6]; // 1. что за [6] и где это играет роль в коде?
        int y = 1;
        int x = 0;
        int result = 0;
        while (x < 6) {
            obs [x] = new Puzzle4b(); // 2. нипонимать зачем это делают
            obs[x].ivar = y; 
            y = y * 10;
            x = x + 1;
        }
        x = 6;
        while (x > 0) {
            x = x - 1;
            result = result + obs[x].doStuff(x); // 3. нипонимать, obs[x].doStuff(x) - считается как obs = 1, [x] = [5], а doStuff(x)?
        }
        System.out.println("Result " + result);
    }
}
class Puzzle4b { // 4. какое чисто выйдет из этого класса?
    int ivar;
   public int doStuff(int factor) { // 5. doStuff(x), этот (х), это тоже самое, что и (int factor)? 
        if (ivar > 100) {
            return ivar * factor; // 6. Я что-то тоже с этими return запутался, как они действуют.
        } else {
            return ivar * (5 - factor);
        }
    }
}
Чтоб понять код, я всегда в голове его прорабатываю, или на блокноте считаю, а тут заглох.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.03.2017, 22:37
Ответы с готовыми решениями:

Закончить небольшой и простенький код
Всем привет:) Помогите, пожалуйста, чайнику дописать код и разобраться в нем. Есть вот такой код ( частичный). Программа должна...

Задача: написать комментарии к коду. Код простенький)
/* 4.2.6. 1 вариант. Для матрицы А(4 строки, 5 столбцов) вычислить выражение Y=M1M5+M2M4+...+M5M1, *где М-значение наибольшего элемента в...

Простенький код на PHP
Всем привет, перейду сразу к делу &lt;?php $domain = &quot;gruppatest99977&quot;; $url =...

2
 Аватар для Borsche
183 / 110 / 44
Регистрация: 03.07.2016
Сообщений: 496
08.03.2017, 23:19
1. Это означает что масив будет из 6 элементов.
2. Ну здесь он в элемент масива obs [x] запихивает экземпляр класса Puzzle4b.
3. doStuff(x) вызывает метод класса Puzzle4b и передаёт туда х
4. А вот какое число выйдет это зависит от int ivar. и оно не из класса выйдет а из метода public int doStuff
5. да х это тоже самое что и int factor, просто по разному назвал зачем то
6. если ivar > 100 то ivar * factor иначе... А действует просто берёт ivar и умножает на х который передали в пункте 3.

И на последок если не можешь разобрать в таком коде, то берёшь ставишь в начале точку дэбага, и пошёл шаг за шагом просматривать что твориться.
1
33 / 33 / 20
Регистрация: 18.03.2016
Сообщений: 101
09.03.2017, 14:01
Вот вам подробные комментарии:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class Puzzle4 {
    public static void main(String [] args) {
        Puzzle4b [] obs = new Puzzle4b[6]; // длина массива 6, это значит что obs хранит 6 ссылок на объекты класса Puzzle4b.
        int y = 1;
        int x = 0;
        int result = 0;
        while (x < 6) { // цифра 6 здесь стоит, чтобы ровно 6 раз повторить действие и в массив сохранить соответствующие 6 объектов.
            obs [x] = new Puzzle4b(); // если этого не сделать, то и во всех ячейках массива от obs[0] до obs[5] будет null.
            obs[x].ivar = y; // Потом мы эти новые объекты изменяем.
            y = y * 10;
            x = x + 1;
        }
        x = 6; // Я бы везде цифру 6 заменил бы на obs.length(). Чтобы потом можно было бы изменить длину массива.
        while (x > 0) {
            x = x - 1;
            result = result + obs[x].doStuff(x); /* obs не может быть равно 1. Ведь это массив объектов.
            при первой итерации x = 5, при второй x = 4 и так до 1. по порядку вызывается метод doStuff() объекта obs[5] и
 передаётся число x = 5, потом вызывается obs[4].doStuff(4) и так до obs[1].doStuff(1). */
        }
        System.out.println("Result " + result); // Здесь будет сумма результатов метода doStuff(), а именно 543345.
    }
}
class Puzzle4b { // Понимаете в чём дело, у вас не один класс, а 6 объектов этого класса. В каждом своё число int ivar.
    int ivar;
   public int doStuff(int factor) { /* да, когда вы передаёте сюда число или переменную с любым названием (не важно x, ivar, factor или ещё как-нибудь), factor приравняется к этому числу. Как бы перед началом этого метода, если вы в него передали x, есть строчка factor = x; */
        if (ivar > 100) {
            return ivar * factor; // Как только выполняется строчка с return, метод завершается и возвращает выражение после return.
        } else {
            return ivar * (5 - factor);
        } // т.е. если ivar больше 100, то метод вернёт ivar * factor, а если меньше, то вернёт ivar * (5 - factor).
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.03.2017, 14:01
Помогаю со студенческими работами здесь

Простенький код PHP
Всем привет, есть проблема по php и vk api (сам я только учу и пишу только по учебнику). Написал следующий код: &lt;?php $domain =...

Простенький код по кв. уравнениям
Я, как прогульщик математики, заявляю, что математика таки пригодится. В общем сабж, я в пхп хоть и новичок, но то, что я хочу сделать -...

Написать простенький код
Всем привет! Может кто-нибудь написать следующую программу: открывается графическое окно, там поле для ввода числа, ниже...

простенький код Паскаля на С++ ,
Привет! опыта не хватает,ребята покажите как его в с++ испоганить,заранее благодарим var i,j,task,n,k,index,gk:integer; ...

Нужно сделать простенький код
Найти наименьшую и наибольшую цифру введенного с клавиатуры неотрицательного целого числа n. Например, для n = 5128 ответ 1 и 8 n=input()...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru