Меню
StopGame  Блоги Блог MOROZILnic Туториал по java №4

Самое актуальное

  • Блоги: «Обзор Fate/stay night. Сточасовая визуальная новелла про «Королевскую битву» магов»
  • Блоги: «Исторический контекст A Plague Tale: Innocence»
  • Обзор игры Bubsy: Paws on Fire!
  • «Инфакт» от 24.05.2019 — Запрет Minecraft, исчезают игры Telltale, Total War бьёт рекорды, Apex приносит меньше денег…
  • Как пройти Doom за 20 минут [Спидран в деталях]
  • Хоррор-стрим. Paranormal Activity: The Lost Soul
  • Некро-Франция — восемь неочевидных фактов о мире A Plague Tale: Innocence
  • Следствие ведет покемон — обзор фильма «Детектив Пикачу»
  • Обзор игры Thea 2: The Shattering
  • Обзор игры Total War: Three Kingdoms
  • Видеопревью игры Dreams
  • Обзор игры Fade to Silence
  • Лучшие артхаусные игры. Часть 1
  • Вся суть Rage 2 за 5 минут (или больше) [Уэс и Флинн]
  • Блоги. «Делаем револьвер Неро из Devil May Cry 5»
  • Обзор игры Shakedown: Hawaii
  • История серии Dead Space, часть 5. Ignition, Mobile и другие
  • Видеообзор игры A Plague Tale: Innocence
  • A Plague Tale: Innocence. Очумелые детки
  • Rage 2. Этюд в яростных тонах
  • Обзор игры Close to the Sun
  • Skyrim: Собираем игру мечты! (часть 1)
  • Видеообзор игры Close to the Sun
  • Блоги. «История серии Divinity. Часть I»
  • Видеообзор игры Rage 2
  • Поиграли в Borderlands 3. Вооружённая жертва Epic Games Store
  • Hades. Побег из Царства Мёртвых
  • Guardians Of Ember. Пока Диабло нет дома
  • Обзор игры Fell Seal: Arbiter's Mark
  • Геймпады, которые подходят не всем

Туториал по java №4

+9
<< >>

Циклы

Цикл — структура для повторения некоего количества команд несколько раз.
Состоит цикл из условия и собственно циклической части(того, что повторяется)

В java есть 3 типа циклов:
1) С предусловием
2) С постусловием
3) С параметром

Разберемся с каждым из них!

Цикл с предусловием

Основной тип цикла

Общая форма:
while(<Условие>){
<Циклическая часть>
}

Этот цикл работает до тех пор, пока условие верно. Т.к. условие стоит до цикл. части, то при изначально неверном условии цикл не запустится.

Цикл с постусловиеем

Редкий тип. Я не писал ни одной программы с ним.

Общая форма:
do{
<Циклическая часть>
}
while(<Условие>);

Этот цикл работает до тех пор, пока условие верно(в яп Паскаль это не так). Т.к. условие стоит после цикл. части, то при изначально неверном условии цикл проработает один раз как минимум.

Цикл с параметром

Идеален для прохода по массивам и прочим упорядоченным структурам.

Общая форма:

for(<Объявление>;<Условие>;<Итерация>){
<Циклическая часть>
}

Объявление — выполняется один раз на входе в цикл, обычно — объявление переменной-счетчика и присвоение ей начального значения.
Итерация — действие, выполняемое каждое повторение цикла, обычно приближает переменную-счетчик к условию выхода из цикла.
Переменная-счетчик обычно имеет имена i/j и тип int. В любом случае тип должен быть цельночисленным.

Есть еще одна форма этого цикла, о ней мы поговорим в массивах.

Обратите внимание на то, как вы осуществляете выход из циклов while и do..while! В теле цикла должно быть изменение переменной/свойства из условия.
Хотя иногда вечный цикл и полезен. Драйвер мыши/клавы является вечным циклом.

При работе с циклом есть 2 важных ключевых слова: continue и break
continue — переходит у первому оператору цикл. части(делая итерацию, если в for)
break — переходит у первому оператору после цикла(выход)

Примеры:
public class Tutorial {

        public static void main(String[] args) {//вывод чисел от 1 до 1000, спасибо ElSemen
                for(int i = 1;i<=1000;i++){
                        System.out.println(i);
                }
        }

}
public class Tutorial {

        public static void main(String[] args) {//вывод простых чисел от 0 до 1000
                for(int i = 1;i<=1000;i++){//i — число для проверки на то, что оно простое
                        boolean flag = true; // флаг для определения, найден ли делитель
                        for(int j = 2;j<=Math.sqrt(i);j++){//интересная фишка: делители числа распологаются до его половины(+ само число), а простые делители — до корня из этого числа
                                if(i%j==){//если делится нацелоа
                                        flag = false;
                                        break;//выходит из цикла с j
                                }
                        }
                        if(flag){
                                System.out.println(i); // если делителей нет=> число простое, значт выводим
                        }
                }
        }

}
import java.util.Scanner;

public class Tutorial {

        public static void main(String[] args) {
                Scanner s = new Scanner(System.in);
                int num = s.nextInt();
                while(num != ){
                        num = s.nextInt();
                }

        }

}
Комментарии (31 шт.)
Нужны примеры на другие циклы?
Мой мозг отказался выдавать что-то новое))

По циклам должно быть много вопросов, кидаем!
Да-да, они(вопросы) есть =)
1) есть ли аналог c#-го foreach?
2)в for <Объявление>;<Условие>;<Итерация> могут отсутствовать некоторыевсе эти части? 3)синтаксис записи 2х и более условий(итераций) аналогичен с/c#?
for(<Объявление>;<Условие1>&<Условие2>&...<УсловиеN>;...)
1) Опиши плз, на шарпе немного прогил
2) Могут отсутствовать все кроме условия, получится вот так:
public class Tutorial {

        public static void main(String[] args) {//вывод чисел от 0 до 1000
                int i = 1;
                for(;i<=1000;){
                        i++;
                    System.out.println(i);
                }
        }

}
Но не проще ли использовать while?
3) Аналогично условию в if, &&. Нескольких итераций — пиши прям в коде цикл. части
Но не проще ли использовать while?

Так я же поэтому и спрашивал! В шарпе допустима конструкция вида

for(;; ) {
}

а что бы так сделать while, придётся писать что то типа while(2 != 1) {}, что, имхо, некрасиво.
while (true){
// вполне красиво
}
хм, да, не знал о такой возможности.
1) А! ну да, есть, но это в следующем туторе, он про массивы
[UPD]:
import java.util.Scanner;

public class Tutorial {

        public static void main(String[] args) {
                Scanner s = new Scanner(System.in);
                int num = s.nextInt();
                while(num != ){
                        num = s.nextInt();
                }

        }

}
Вот пример цикла while. Знаю, что дебильненько.
(num != )

Это значит != 0?
он сжирает куски кода( там было !=0
Это какбы не первый раз…
наконец то! я минут 40 тупил, пытаясь понять что это. даже писал где то раньше. теперь всё встало на свои места =)
А я то по тупости своей думала это так и положено (:
Приостанавливаю производство туторов для начинающих с бешеной скоростью. Теперь — раз в 2 дня
Эх, мнеб с паскалем поработать, кто нибудь знает хорошие туториалы?
А зачем он тебе? В этих туториалах (для начинающих) он дает логику процедурного программирования, если прошаришь, синтаксис Паскаля за неделю выучишь)
Экзамены сдавать, а там паскаль надо, а за каникулы я уж все забыл. А че, аллгоритмы и массивы теже?
По сути да (: Хотя если для подготовки к экзаменам, то лучше самим паскалем заниматься, это да… Экзамены же аж летом, не? уже готовится начинаешь?!!! Туториалов не знаю к сожалению…
Ну заранее готовлюсь))) А что делать, охото в высший поступить) Чтож жаль, что не знаешь
У нас в вышку на прогера только математику сдают (ну и всякий обязательный бред), информатику не надо… Или у тебя в школе экзамен? Тогда лучше теорию учить по конспектам, что препод давал, ато они (учителя) в этом плане очень чувствительные ^_^
далековато вы от темы отошли =) при чём тут вообще паскаль, экзамены и высший? о_О
Да ладно, не вредничай! :)
Извиняйте, щас уйду
Информатику на всякий случай, где то может и понадобится, а вот математику и ФИЗИКУ, это просто смерть
Как я тебя понимаю (:
И вот еще, меня как то так и учили (: Только вроде не все есть…
Огромное пасибо)))) Уже ухожу дабы не мешать вашим урокам
Да ладно не слушай его
Удачи с Паскалем то. Он милый)
Спасибо))) Да знаю, изучал его полгода
насколько я знаю, егэ сдается на любом языке, можно даже на русском
Для комментирования необходима регистрация.
Прямой эфир «Блоги»
[ХАЛЯВА] Место раздачи халявы V11!
Официальный бложик халявщиков на СГ
Курилка страны Восходящего Солнца
Блог курилок и длинных разговоров
[Обзор UnderRail] Андеграунд RPG жанра
Персональный блог Блог slymmen
Обзор Team Sonic Racing
Блог обзорщиков
Пасхалки 35MM
Блог LukassKane
Caves./обзор
Блог Chebur4shk4
[Стрим по заявкам] Июнь (Ой, то есть май). Во что будем играть?
Персональный блог имени Плюшевого Динозавра
Наверх ↑