После ввода 20 строк с клавиатуры не переходит к сортировке, но можно и дальше бесконечно вводить строки.... package com.javarush.task.task08.task0830; import java.io.BufferedReader; import java.io.InputStreamReader; /* Задача: Введи с клавиатуры 20 слов и выведи их в алфавитном порядке. Каждое слово - с новой строки. */ public class Solution { public static void main(String[] args) throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String[] array = new String[20]; for (int i = 0; i < 20; i++) { array[i] = reader.readLine(); } sort(array); // разделитель System.out.println("------------------------------------------"); for (String x : array) { System.out.println(x); } } public static void sort(String[] array) { boolean needIteration = true; while (needIteration) { needIteration = false; for (int i = 0; i < array.length-1; i++) { if (isGreaterThan(array[i],array[i+1])) { swap(array[i],array[i+1]); needIteration = true; } } } } //Метод для сравнения строк: 'а' больше чем 'b' public static boolean isGreaterThan(String a, String b) { return a.compareTo(b) > 0; } //Метод для замены мест строк public static void swap(String s, String p) { String q; if (isGreaterThan(s,p)) { q = s; s = p; p = q; } } }