JavaRush
Акция
Университет
Java FullStack
Python FullStack
new
Web FullStack
new
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/Подскажите, пожалуйста, почему задача не проходит?
Карина
12 уровень
  • 31.01.2022
  • 471просмотров
  • 10комментариев

Подскажите, пожалуйста, почему задача не проходит?

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


  1. Введи с клавиатуры 10 слов в список строк.
  2. Определить, является ли список упорядоченным по возрастанию длины строки.
  3. В случае отрицательного ответа вывести на экран индекс первого элемента, нарушающего такую упорядоченность.

Требования:
  • Объяви переменную типа список строк и сразу проинициализируй ee.
  • Считай 10 строк с клавиатуры и добавь их в список.
  • Если список упорядочен по возрастанию длины строки, то ничего выводить не нужно.
  • Если список не упорядочен по возрастанию длины строки, то нужно вывести на экран индекс первого элемента, нарушающего такую упорядоченность.
package com.javarush.task.jdk13.task07.task0718; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; /* Сортировка списка */ public class Solution { public static void main(String[] args) throws IOException { //напишите тут ваш код ArrayList<String>list = new ArrayList<>(); BufferedReader buff = new BufferedReader(new InputStreamReader(System.in)); for (int i = 0; i <10 ; i++) { String s = buff.readLine(); list.add(s); } for (int i = 0; i < list.size() ; i++) { if (list.get(i).length()<list.get(i+1).length()) { i++; } else if (list.get(i).length()>=list.get(i+1).length()){ System.out.println(i+1); } } } }
0
Комментарии (10)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Никита
Уровень 31
Expert
31 января 2022, 09:21
ну так вывод не правильный, посмотрите что выводит программа если не упорядочены
0
Карина
Уровень 12
31 января 2022, 10:29
Все рано пока не понятно for (int i = 0; i < list.size() ; i++) { if (list.get(i).length()<list.get(i+1).length()) { <<<----------как я себе представила тут берем i-тый элемент начиная с нулевого индекса, сравниваем с i-тым элесентом следующим , если предыдущий, меньше, чем следующий - идем дальше i++; } else if (list.get(i).length()>=list.get(i+1).length()){ <<<<-------------если, следующий элемент, меньше, чем предыдущий, выводим его индекс. System.out.println(i+1); равно пока не понятно. А что я тогда вывожу????
0
Seroygin
Уровень 36
31 января 2022, 12:18
У вас 2 раза инкрементируется i, т.е. в случае правильной последовательности цикл перескакивает через строку. Второе условие тут лишнее (почитайте про break).
0
Карина
Уровень 12
2 февраля 2022, 08:46
А что тут читать? break - выход из цикла. Мне это разве нужно? Тогда уж continue предпочтительнее.
0
Seroygin
Уровень 36
4 февраля 2022, 12:27
А разве нужно продолжать цикл если список не упорядочен?
0
Карина
Уровень 12
8 февраля 2022, 11:16
да, верно))
0
Карина
Уровень 12
8 февраля 2022, 11:28
а если у меня будет такой список 00 000 0000 0 00000 000000 0000000 000000000 0000000000 и тд. Ничего не получается если ввести такой список: 00000000 000000 00000 000 00 и т.д, программа выводит не то...((( то когда break произойдет? я переписала код, он теперь такой; ArrayList<String>list = new ArrayList<>(); BufferedReader buff = new BufferedReader(new InputStreamReader(System.in)); for (int i = 0; i <10 ; i++) { String s = buff.readLine(); list.add(s); } for (int i = 0; i < list.size()-1 ; i++) { if (list.get(i).length()<list.get(i+1).length()) { continue; } else if (list.get(i).length()>=list.get(i+1).length()){ System.out.println(i+1); } } } }
0
Никита
Уровень 31
Expert
8 февраля 2022, 11:35
после последнего if добавь break, а то получается что программа находит то что надо и идет дальше и в таком случае возможно несколько выводов. то есть даже не после него, а в нем после вывода и почему в условии "<" если длины равны, это не нарушает упорядоченность
0
Карина
Уровень 12
8 февраля 2022, 11:44
Е-мае, дошло!!!!! Ни с того ни с сего дошло, о чем вы мне все говорите!!!! Спасибо, огромное!!!
+2
Карина
Уровень 12
8 февраля 2022, 11:45
Дошло-таки!!!!! Осенило, о чем вы мне говорите, наконец-то!!!! Ура. А Вам большое спасибо за терпение ))
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush