Попробовал написать универсальное решение, как можно улучшить/написать красивее ?
Не нравится большое кол-во переменных, возможно от части можно отказаться без ущерба ?
hidden #1995774
7 уровень
Как можно улучшить ?
Решен
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Kairat
19 апреля 2019, 05:14
На этом уровне мне кажется более понятен такой код
0
Justinian Judge в Mega City One Master
16 апреля 2019, 15:55
Покажи код, расскажем.
+1
Justinian Judge в Mega City One Master
17 апреля 2019, 08:03полезный
1. Решение просто удали, в принципе свою задачу оно выполнило, я посмотрел )
2. int count = 0; / count++; - удаляй подобные конструкции с чистовика. Все делают в том или ином виде для себя те или иные строки, но это черновик, сдаешь валидатору или кому-то показываешь - удаляй, да и для себя тоже оставляй чистовик.
Представь что я попросил тебя показать приготовленный тобой пирог.
А ты мне выносишь поднос, на нем пирог, сверху полпачки сахара лежит, миска с кусками теста и тд. Ну не комильфо это. Твой код это твое лицо. Написал, отдебажил, работает, причесал - убрал подобные моменты и оставил код в хорошем рабочем состоянии без лишнего.
3. even = 0;
odd = 0;
Эти строки лишние.
Переменные бывают двух основных типов, переменные класса (объявляются ВНЕ методов, в данном случае это even и odd) и обычные переменные. Переменные класса называются полями, они при объявлении имеют дефолтное значение, 0 для инта, "" для стринга, false для boolean и тд.
То есть тебе не нужно присвоять дополнительно нули.
в этих строках они уже нули имеют по умолчанию.
4. int numFull = ...
На перспективу конечно, но уже можешь начинать прямо сейчас называть переменные "по-взрослому". Не сокращай, представь что ты показываешь кусочек кода другому программисту и говоришь что он делает.
Если бы я увидел в коде переменную numFull я был бы без понятия, ну что-то полное, а что? Используй полные названия - numberFull.
Не сокращай!! Это ты сейчас понимаешь, но код пишется для того чтобы другие программисты могли прочитать и очень быстро схватить суть. Мы пишем код для других.
Есть общепринятые сокращения:
для итерации for используются i, j;
n - для числа , особенно integer
s или str для стринга.
Но эти сокращения для каких-то точечных временных моментов.
+1
Justinian Judge в Mega City One Master
17 апреля 2019, 08:07полезный
Вот кусочек моего кода из будущих задач для демонстрации, он не идеален, но.
Ты еще не проходил эти темы,это кусок неизвестной тебе программы, скажи, ты можешь сказать что какая строка делает и что в ней происходит?
+1
Justinian Judge в Mega City One Master
17 апреля 2019, 08:08полезный
А это код другого человека для той же задачи, то есть аналогичный код, какой из них тебе понятней в плане, что делает эта программа?
+1
Justinian Judge в Mega City One Master
17 апреля 2019, 08:16полезный
Вывод:
1. Разбивай большой код на методы,как матрешка.
Тебе легче потом этот код будет менять, использовать.
У меня например во всех задачах почти где валидатору не принципально, чтение из строки в отдельном методе. И тд
2. ИМЕНА. посмотрим еще на тот код сверху, ужаснись и запомни. В реальной работе никто ddd и ммм использовать не будет.
Допустимы переменные с одной буквы если это какая-то временная переменная и она больше нигде в коде не используется, но лучше чтобы называлось понятно.
По самому твоему алгоритму, интересный, очень даже, вопросов к нему никаких, просто и лаконично. Молодец, продолжай дальше.
+1
hidden #1995774
17 апреля 2019, 15:44
Искренне благодарю за науку )
+1