Задачи на циклы
Данная статья:
- написана командой Vertex Academy. Надеемся, что она Вам будет полезна. Приятного прочтения!
- это одна из статей из нашего "Самоучителя по Java"
Ниже даётся детальное объяснение простых задач в помощь тем, кто ранее не программировал и только делает свои первые шаги в программировании. Изучив их, Вам будет легче перейти к более сложным задачам - уровень сложности 2.
Задача №1
Необходимо вывести на экран числа от 1 до 5. На экране должно быть:
1 2 3 4 5
Решение:
1 2 3 4 5 6 7 8 |
class Test { public static void main(String[] args) { for (int i=1; i <= 5; i++) { System.out.print (i + " "); } } } |
Комментарии к задаче:
Как видно из условия, числа увеличиваются от 1 до 5 с шагом 1. Есть определенная закономерность, не так ли? А значит, необходимо использовать цикл. Осталось только понять какой именно цикл нужно использовать? Мы точно знаем, что числа будут увеличиваться от 1 до 5. А раз мы точно знаем сколько раз будет повторяться цикл, можем использовать цикл for.
Пишем строчку с конструкцией цикла for:
1 |
for (int i=1; i <= 5; i++) { |
- int i = 1; - это начальное значение переменной
- i<=5; - это условие, при котором будет выполняться цикл
- i++ - это шаг, с которым будет выполняться цикл. В данном случае мы использовали инкремент, а значит переменная будет увеличиваться на 1. То есть с 1 до 2, с 2 до 3, с 3 до 4, с 4 до 5.
А чтобы после каждого шага кода выводить новое значение переменной, мы написали вот эту строчку:
1 |
System.out.print (i + " "); |
Поскольку нам необходимо вывести числа строчкой: 1 2 3 4 5 мы используем System.out.print ()
Если бы мы использовали System.out.println(); числа бы были выведены на экран вот так:
1
2
3
4
5
Обязательно обращайте внимание на то, чтобы количество скобок открывающих { и закрывающих } совпадало. В нашем случае 3 открывающие и 3 закрывающие скобки.
Задача №2
Необходимо вывести на экран числа от 5 до 1. На экране должно быть:
5 4 3 2 1
Решение:
1 2 3 4 5 6 7 8 |
class Test { public static void main(String[] args) { for (int i=5; i>=1; i--) { System.out.print (i + " "); } } } |
Комментарии к задаче:
Как видно из условия, числа уменьшаются от 5 до 1 с шагом 1. Есть определенная закономерность, не так ли? А значит, необходимо использовать цикл. Вопрос какой? Мы точно знаем, что числа будут уменьшаться от 5 до 1. А раз точно знаем сколько раз будет повторяться цикл, можем использовать цикл for.
Пишем строчку с конструкцией цикла for:
1 |
for (int i=5; i>=1; i--) { |
- int i = 5; - это начальное значение переменной
- i >=1; - это условие, при котором будет выполняться цикл
- i- - декремент, то есть уменьшение переменной на 1. С 5 до 4, с 4 до 3, с 3 до 2, с 1 до 1
А с помощью этой строчки выводим на консоль значения переменной
1 |
System.out.print (i + " "); |
Мы используем System.out.print (); поскольку нам необходимо вывести числа строчкой: 5 4 3 2 1
Если бы мы использовали System.out.println(); числа бы были выведены на экран вот так:
5
4
3
2
1
И снова напоминаем, обязательно обращайте внимание на то, чтобы количество скобок открывающих { и закрывающих } совпадало. В нашем случае снова 3 открывающие и 3 закрывающие скобки.
Задача №3
Необходимо вывести на экран таблицу умножения на 3:
3*1=3
3*2=6
3*3=9
3*4=12
3*5=15
3*6=18
3*7=21
3*8=24
3*9=27
3*10=30
Решение:
1 2 3 4 5 6 7 |
class Test { public static void main(String[] args) { for (int i=1; i<=10; i++) { System.out.println ("3*" + i + "=" + 3*i); } } } |
Комментарии к задаче:
Как видно из условия, мы 3 умножаем сначала на 1, потом на 2, потом на 3 и так до 10. Не кажется ли Вам, что необходимо применить цикл? Правильно, нужен цикл. Осталось понять какой именно цикл. Раз мы точно знаем сколько будет повторений – от 1 до 10 - применяем цикл for.
Пишем строчку с конструкцией цикла for:
1 |
for(int i=1; i<=10; i++) |
- int i = 1; - это начальное значение переменной
- i <= 10; - это условие, при котором будет выполняться цикл
- i++ инкремент, то есть увеличение переменной на 1. С 1 до 2, с 2 до 3, с 3 до 4 и т.д.
Разберем вот эту строчку с помощью которой мы выводим значения на консоль
1 |
System.out.println ("3*" + i + "=" + 3*i); |
Посмотрим на первые 3 строчки задания:
3*1=3
3*2=6
3*3=9
Как видно, есть:
- текстовая часть: “3*” и “=”
- алгоритмическая часть: будет подставлять значения за счет цикла for – это все остальные значения.
Поэтому в System.out.println() всю текстовую часть заключаем в кавычки. И получаем: System.out.println ("3*"+ i + "=" + 3*i);
Задача №4
Напишите программу, где пользователь вводит любое целое положительное число. А программа суммирует все числа от 1 до введенного пользователем числа.
Например:
- если пользователь введет число 3. Программа должна посчитать сумму чисел от 1 до 3, то есть 1+2+3 и выдать ответ 6.
- если пользователь введет число 5. Программа должна посчитать сумму чисел от 1 до 5, то есть 1+2+3+4+5 и выдать ответ 15.
Думаю, суть задачи Вы уже поняли - переходим к ее решению.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import java.util.Scanner; class Test { public static void main(String[] args) { System.out.print("Введите любое целое положительное число: "); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int sum = 0; for (int i=1; i<= n; i++){ sum = sum + i; } System.out.println (sum); } } |
Комментарии к задаче:
Сначала мы должны предложить пользователю ввести любое целое положительное число. Это мы делаем с помощью этой строчки:
1 |
System.out.print("Введите любое целое положительное число: "); |
Чтобы считать с консоли введенное пользователем число, нам нужен сканер. Поэтому мы выполняем 3 шага.
Шаг №1 - подключаем сканер из библиотеки java.util с помощью этой строчки
1 |
import java.util.Scanner; |
Шаг №2 - объявляем сканер
1 |
Scanner sc = new Scanner(System.in); |
Шаг №3 - считываем с консоли введённое целое число. Для этого используем метод nextInt ()
1 |
int n = sc.nextInt(); |
В условиях задачи сказано, что числа будут суммироваться от 1 до введённого пользователем числа. Не кажется ли Вам, что это цикл? Да, конечно же это цикл. Причем мы заранее знаем сколько раз будут суммироваться числа: от 1 до n, где n – введённое пользователем число. А значит нам надо использовать цикл for.
Пишем строчку с конструкцией цикла for:
1 |
for (int i=1; i<= n; i++) |
По условию задачи, нам надо суммировать числа от 1 до n. Для этого перед циклом мы объявляем переменную int sum и присваиваем ей значение 0:
1 |
int sum = 0; |
В переменную sum будут суммироваться числа с помощью цикла for
1 2 3 4 |
int sum = 0; for (int i=1; i<= n; i++){ sum = sum + i; } |
Далее с помощью этой строчки выводим результат суммирования на консоль
1 |
System.out.println (sum); |
Надеемся, что наша статья была Вам полезна. Также есть возможность записаться на наши курсы по Java в Киеве. Обучаем с нуля.
По всем вопросам звоните:
+38 050 205 77 99
+38 098 205 77 99
Или читайте информацию по нашим курсам Java c нуля у нас на сайте.