JavaRush /Курсы /Java Syntax Pro /Примеры использования цикла for

Примеры использования цикла for

Java Syntax Pro
4 уровень , 4 лекция
Открыта

1. Подсчет количества введенных строк с помощью цикла for

Давайте напишем программу, которая вводит с клавиатуры 10 строк и выводит на экран, сколько из этих строк было чисел. Пример:

Код Пояснение
Scanner console = new Scanner(System.in);
int count = 0;
for (int i = 0; i < 10; i++)
{
   if (console.hasNextInt())
      count++;
   console.nextLine();
}
System.out.println(count);
Создаем объект Scanner для чтения данных с консоли.
В переменной count будем хранить количество чисел.
Цикл от 0 до 10 (не включая 10).

Если в консоли ввели число,
то увеличиваем count на единицу.
Считываем строчку из консоли и никуда ее не сохраняем.

Выводим подсчитанную сумму на экран.
Примечание

Если в строке есть несколько слов, разделенных пробелами, и первое из них — число, метод hasNextInt() вернет true, даже если остальные слова будут не числами. Поэтому наша программа будет правильно работать, только если в каждой строке написано не больше одного «слова».


2. Вычисление факториала с помощью цикла for

Давайте напишем программу, которая ничего не вводит, а скажем, что-нибудь вычисляет. Что-то сложное. Например, факториал числа 10.

Факториалом числа n (обозначается n!) называется произведение ряда чисел: 1*2*3*4*5*..*n;

Код Пояснение
int f = 1;
for (int i = 1; i <= 10; i++)
   f = f * i;
System.out.println(f);
В переменной f будем хранить произведение чисел.
Цикл от 1 до 10 (включительно).
Умножаем f на очередное число (результат сохраняем в f).
Выводим подсчитанную сумму на экран.

Стартовое значение f = 1, т.к. мы умножаем f на числа. Если бы f изначально было 0, произведение всех чисел на 0 дало бы 0.


3. Рисуем на экране с помощью цикла for

Давайте напишем программу, которая рисует на экране треугольник: в первой строчке выводит 10 звездочек, во второй — 9 звездочек, затем 8, и т.д.

Код Пояснение
for (int i = 0; i < 10; i++)
{
   int starCount = 10 - i;
   for (int j = 0; j < starCount; j++)
      System.out.print("*");
   System.out.println();
}
Цикл по строкам (всего должно быть 10 строк).

Вычисляем, сколько в строке должно быть звездочек.
Цикл по звездочкам
(выводим starCount звездочек).
Добавляем перенос курсора на следующую строку, чтобы строки не слиплись.

У нас тут должно быть два вложенных цикла — внутренний цикл должен выводить правильное количество звездочек в строке.

А внешний цикл нужен для переключения по строкам.



Комментарии (426)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Lena Уровень 10
20 декабря 2025
public class Solution { public static void main(String[] args) { //напишите тут ваш код for(int i = 1; i<=10; i++){ for(int j = 0; j<i; j++){ System.out.print(8); } System.out.println(); } } }
Роман Зарубин Уровень 8
26 ноября 2025
Работаем
anton sagemode Уровень 8
19 ноября 2025
Второй пример по использованию цикла 2. Вычисление факториала с помощью цикла for Пояснение, последняя строка "Выводим подсчитанную сумму на экран." Думаю должно быть - "Выводим подсчитанное произведение на экран."
Сергей Уровень 20
30 сентября 2025
Задача медиум, а решается легко) Может мне только легко или уже приходит понимание всей этой кухни... но самое главное не расслабляться, так как дальше будет еще интереснее и труднее🤞
Евгений Волков Уровень 28
17 августа 2025
не точные условия задачи. Мой код тоже даёт прямоугольный треугольник.

public class Solution {
    public static void main(String[] args) {
        for (int i=0; i<10; i++)
        {
            int y = 10-i;
            for (int z=0; z<y; z++){
            System.out.print("8");
        }
            System.out.println();
        }
    }
}
invoker main Уровень 42
4 сентября 2025
мужик, он у тебя перевернут
kity9i Уровень 5
27 июля 2025
В лекции - в коде ошибка, если хотим получить треугольник из звездочек, то перенос строчки должен выноситься из второго блока for, тогда треугольник получиться, иначе каждая звезда будет с новой строчки for (int i = 0; i < 10; i++) { int starCount = 10 - i; for (int j = 0; j < starCount; j++) { System.out.print("*"); } System.out.println(); }
Gris Hiver Уровень 1
29 июля 2025
В лекции нет ошибки. Внимательно посмотрите на отступы. Цикл for может состоять из одной команды, тогда не нужны фигурные скобки.
Магомед Уровень 7
16 сентября 2025
Мне тоже стало это интересно почему System.out.print("*"); и System.out.println(); выполняются разное количество раз : System.out.print("*"); выполняется 55 раз , а System.out.println(); всего 10 раз. Оказывается System.out.print("*"); относится к внутреннему циклу ( for (int j = 0; j < starCount; j++)) , а System.out.println() к внешнему (for (int i = 0; i < 10; i++)). А ВСЕ ПОТОМУ , что если после управляющей конструкции (if, for, while, do...while, else) НЕТ фигурных скобок {}, то к ней относится только одна следующая инструкция (строка)
Кирилл Орлов Уровень 6
22 июля 2025
в будущем придется много гуглить)

"8".repeat(i)
Александр Уровень 12
14 сентября 2025
for(int i = 1; i <= 10; i++) { System.out.println("8".repeat(i));
Магомед Уровень 7
16 сентября 2025
Я тоже наткнулся в интернете на такое решение Наверное стоит где-нибудь записать этот метод
31 мая 2025
 
for (int i = 1; i<=10; i++){			
			for (int j = 0; j<i;  j++)
			       System.out.print("8");
			System.out.println();
			}
 
Anonymous #3585174 Уровень 33
30 мая 2025
good!
Raushan Уровень 16 Expert
23 мая 2025
Странно, задача засчиталась верной, но кажется не совсем правильно public class Solution { public static void main(String[] args) { for (int i = 0; i < 10; i ++){ for (int a = 0; a < i; a ++){ System.out.print("8"); } System.out.println("8"); } } }
I_no.nick_I Уровень 8
22 июля 2025
прикольное решение
Eugene Volkov Уровень 35
8 сентября 2025
по идее весь треугольник будет смещен вниз на одну стррочку, а ввезху аппендикс из одной 8.