Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 20.10.2016
Сообщений: 12
Записей в блоге: 3

Начинающий (очень начинающий)

22.06.2017, 00:22. Показов 2257. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На небезызвестном образовательном проекте позиционирующем себя как максимально "практичный" решаю периодически задачки.
Задачки успешно проходят проверку, но у меня ощущение что то, что я делаю выглядит как-то тупо и не изящно, решаю все, что называется "в лоб"
например задача:

1. Создай список строк.
2. Считай с клавиатуры 5 строк и добавь в список.
3. Используя цикл, найди самую длинную строку в списке.
4. Выведи найденную строку на экран.
5. Если таких строк несколько, выведи каждую с новой строки.


Требования:
1. Объяви переменную типа ArrayList (список строк) и сразу проинициализируй ee.
2. Программа должна считывать 5 строк с клавиатуры и записывать их в список.
3. Программа должна выводить самую длинную строку на экран.
4. Если есть несколько строк с длиной равной максимальной, то нужно вывести каждую из них с новой строки.


я решил:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Solution {
    public static void main(String[] args) throws Exception {
        //напишите тут ваш код
        ArrayList<String> list = new ArrayList<String>();
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < 5; i++) {
            String str = sc.nextLine();
            list.add(str);
        }
        int max = 0;
        for (int i = 0; i < 5; i++) {
            if (max < list.get(i).length())
                max = list.get(i).length();
 
        }
        for (int i = 0; i < 5; i++) {
            if (max == list.get(i).length())
                System.out.println(list.get(i));
        }
    }
}
Все работает вроде даже как надо, но я это все делаю не просто так, а хотелось бы в данную сферу в неком будущем устроиться.

Суть вопроса, как правильно писать "полезный" код? Может литература какая-то есть? Или на данном этапе не морочить себе голову этим? Просто не хочется с самого старта прививать себе какие-то плохие и тупые привычки.
Спасибо.

Добавлено через 1 минуту
Проблема в том что мне кажется я создаю больше циклов чем нужно, кажется все можно сделать намного компактней и вообще проблема в том что я ни черта не знаю)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.06.2017, 00:22
Ответы с готовыми решениями:

Контейнеры в Java (начинающий)
Доброго дня , у меня такой вопрос как добавлять объекты в контейнер вот тут допустим: import java.awt.Container; public class MySet2...

Начинающий. Операторы ввода вывода.
Хотел бы узнать об операторах ввода-вывода на java и как они работают. Хочу ещё знать значения каждого слова System, out, println и...

Начинающий - ввод с консоли и запись в массив
Здравствуйте, помогите с задачей. Начал читать книгу Шилдта, но задачи надо решить сейчас: Задача Данные вводятся с клавиатуры ,...

5
230 / 199 / 71
Регистрация: 21.10.2016
Сообщений: 449
22.06.2017, 01:00
Цитата Сообщение от Shersh1k Посмотреть сообщение
Начинающий (очень начинающий)
Стивен Макконнелл, "Совершенный код".
1
1 / 1 / 0
Регистрация: 20.10.2016
Сообщений: 12
Записей в блоге: 3
22.06.2017, 01:07  [ТС]
Цитата Сообщение от Хм Посмотреть сообщение
Стивен Макконнелл, "Совершенный код".
вот, такое мне давно говорили (если память не обманывает), только я все время думаю что "сейчас" ее нету смысла читать, но надо попробовать, потому как совсем не нравится то, что я даже не понимаю насколько "какахакодно" я пишу даже такие мелочи как выше.
Спасибо.
И вот конкретно по моему скинутому примеру чтобы например там лучше изменить можно?
0
230 / 199 / 71
Регистрация: 21.10.2016
Сообщений: 449
22.06.2017, 01:29
Цитата Сообщение от Shersh1k Посмотреть сообщение
И вот конкретно по моему скинутому примеру чтобы например там лучше изменить можно?
Для начального, ознакомительного уровня совсем неплохо.

Цитата Сообщение от Shersh1k Посмотреть сообщение
мне кажется я создаю больше циклов чем нужно, кажется все можно сделать намного компактней
Каждый цикл выполняет свою работу. Смешивать их не надо.

Цитата Сообщение от Shersh1k Посмотреть сообщение
И вот конкретно по моему скинутому примеру чтобы например там лучше изменить можно?
Ну может циклы убрать в отдельные методы, вот тогда и получиться покомпактней.

Лучшие ответы на твои вопросы у Макконнелла.
1
1 / 1 / 0
Регистрация: 20.10.2016
Сообщений: 12
Записей в блоге: 3
22.06.2017, 01:33  [ТС]
Цитата Сообщение от Хм Посмотреть сообщение
Лучшие ответы на твои вопросы у Макконнелла.
Хорошо, спасибо еще раз! Надеюсь действительно найду ответы на важные для себя вопросы.
0
 Аватар для Aviz__
2736 / 2046 / 506
Регистрация: 17.02.2014
Сообщений: 9,462
22.06.2017, 10:02
Цитата Сообщение от Shersh1k Посмотреть сообщение
мне кажется я создаю больше циклов чем нужно,
Ты же совершенно свободен в выборе пути решения)). Может, ты совершенно прав, и то же самое, можно сделать с меньшим количеством циклов и прочего... но пока не попробуешь не узнаешь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.06.2017, 10:02
Помогаю со студенческими работами здесь

(начинающий) Что не так в коде - не выдает скалярное произведение?
Проблема в том, что данный код выводит вместо скалярного произведения векторов значения (0). Что не так? package Leasing.algebra; ...

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

Начинающий java "программист"
В свободное от универа время изучаю Java на данный момент прочел Г.Шилд &quot;Руководство для начинающих&quot;, не хочу читать полное...

Программисты, я начинающий!
Ищу человека, который поможет мне разобраться с Java. Я начинающий программист, в универе объяснений почти никаких.Книги, инет - всё это...

Начинающий Java программист
Начинающий Java программист присоединится к группе разработчиков для удаленной работы за символическую плату для получения опыта. Знания:...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru