JavaRush
AI Academy
new
Акция
Университет
Java FullStack
Python FullStack
AI Native Developer
new
Web FullStack
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/можно ли решить задачу таким способом в одно строку? пише...
Evgeny Yushkin
4 уровень
  • 03.01.2020
  • 814просмотров
  • 7комментариев

можно ли решить задачу таким способом в одно строку? пишет не хватает точки с запятой...

Вопрос по задаче Семь цветов радуги
Java Syntax,  3 уровень,  6 лекция
Решен


Создать 7 объектов, чтобы на экран вывелись 7 цветов радуги.
Пример вывода:
Red
Orange
Yellow
Green
Blue
Indigo
Violet
Каждый объект при создании выводит на экран определенный цвет.

Требования:
  • Программа должна выводить текст.
  • Нужно создать 7 различных объектов, отвечающих за цвета.
  • Порядок создания объектов должен соответствовать порядку цветов в радуге.
  • Классы отвечающие за цвета изменять нельзя.
  • Выведенный текст должен соответствовать заданию.
....
package com.javarush.task.task03.task0315; /* Каждый охотник желает знать… */ public class Solution { public static void main(String[] args) { Red a,Orange b,Yellow c,Green d,blue e,Indigo g,Violet s = new Red,Orange,Yellow,Green,blue,Indigo(); } public static class Red { public Red() { System.out.println("Red"); } } public static class Orange { public Orange() { System.out.println("Orange"); } } public static class Yellow { public Yellow() { System.out.println("Yellow"); } } public static class Green { public Green() { System.out.println("Green"); } } public static class Blue { public Blue() { System.out.println("Blue"); } } public static class Indigo { public Indigo() { System.out.println("Indigo"); } } public static class Violet { public Violet() { System.out.println("Violet"); } } }
0
Комментарии (7)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
JustinianJudge в Mega City OneMaster
3 января 2020, 11:12
Можно решить, причем достаточно большим количеством разных способов, Ксения верно ниже указала, что краткость это следствие хорошего кода, а не наоборот, хороший код может быть кратким, но краткий хорошим это уже большой вопрос и как правило нет. Но если хочется прям в одну строку, то можно вот так, компилятор это разрешает, хотя конечно уже очень скоро ты поймешь почему так не пишут, более того, даже вот int a, b; объявлять считается плохим тоном. Ну и собственно вариант твоего кода в одну строку, который будет пропущен компилятором:         Red a = new Red(); Orange b = new Orange(); Yellow c = new Yellow(); Green d = new Green(); Blue e = new Blue(); Indigo g = new Indigo(); Violet s = new Violet();
Наглядная демонстрация почему в одну строку не принято в джаве писать :)
+1
Evgeny Yushkin
Уровень 4
3 января 2020, 11:45
спасибо!я его так и написал,значит через запятую не прокатит? всегда надо указывать = new и т.д.
0
JustinianJudge в Mega City OneMaster
3 января 2020, 12:56
через запятую можно объявлять, int a, b, c, d, e; а вот создание объекта всегда требует оператора new. Один new - один объект, много объектов, много new. Оператор присваивание = присваивает значение переменной, один оператор = значит одно присваивание, итого на каждый цвет должно быть по оператору = и по оператору new/ ну и разделять это все добро точкой с запятой
Cat cat = new Cat(); Dog dog = new Dog();
но опять же, профи всегда напишет это в две строки, он практически никогда не будет пытаться соединить все в одну строку, поскольку это как затягивать узел, это можно сделать ) Но потом работать с кодом очень и очень сложно
0
Evgeny Yushkin
Уровень 4
3 января 2020, 13:10
спасибо за информацию!
0
Ksenia VolkovaJava Developer в DXCMaster
3 января 2020, 10:39
Нет, так нельзя присваивать значения переменным. И создавать объекты так нельзя. Зато можно решить без переменных вообще.
0
Evgeny Yushkin
Уровень 4
3 января 2020, 10:50
ну я прописал каждую отдельно и прошёл задание,но хотелось бы научиться писать код как можно короче)
0
Ksenia VolkovaJava Developer в DXCMaster
3 января 2020, 11:02
Это неверная цель =) Код должен быть рабочим, эффективным и читаемым. Краткость нужна лишь в той мере, в какой она способствует читаемости.
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush