Занятие №8 оператор while и do-while

Здравствуйте дорогие читатели сайта nookery.ru В сегодняшнем уроке мы поговорим о двух операторах цикла while и do-while. Так для чего же они нужны, если мы знаем уже такой цикл как for? Дело в том что в цикле for используется счетчик, но бывают случаи когда счетчик использовать нет возможности. И тогда на помощь, как раз приходит оператор while. А теперь по подробнее разберемся с циклом while.

Цикл while

Цикл do — while

Домашние задание.

Цикл while.

Цикле while имеет следующий вид реализации листинг 8.1

листинг 8.1

Работает конструкция следующим образом, выполняется условие в скобках, если оно истина, то выполняется тело цикла, после повторно проверяется условия в скобках, и так происходит до тех пор, пока условия не станет ложным, и программа завершится.  Так же в условие достаточно написать логический тип boolean значени true и оно будет истинно всегда. Но произойдет зацикливание программы, выйти из которой можно лишь с помощью оператора break; Рассмотрим пример такой программы в листинге 8.2

листинг 8.2

В листинге 8.2 проходит проверка условия в цикле while, так как оно истина, входим в тело цикла и выводим сообщение nookery.ru Далее срабатывает наш оператор break; и программа выходит из тела цикла после чего завершает свою работу.

Рассмотрим еще один пример в листинге 8.3

листинг 8.3

В листинге 8.3 мы объявили переменную а и присвоили ей значение 0. Условия цикла while истина, так как 0 меньше 10, поэтому программа вошла в тело цикла. Внутри тела происходит итерация переменной а. То есть она увеличилась на единицу. Далее идет вывод информации в консоль. И снова происходит проверка условия, и так будет, пока переменная а не стане равна 10, где условие станет ложным и программа завершит свою работу.


Цикл do — while

Цикл do -while как его еще называют оператором пустословия, отличия его от while в том, что он всегда выполнит тело цикла хотя бы один раз. И так рассмотрим его работу в листинге 8.4

листинг 8.4

Как только программа доходит до ключевого слова do, она понимает что имеет дело с работой цикла while. Где выполняется тело цикла. После чего происходит проверка условия. В листинге 8.5 рассмотрим пример работы do- while

листинг 8.5

В листинге 8.5 мы объявили переменную а со значением 0. Когда программа доходит до ключевого слова do выполняет тело цикла, выводит сообщение в консоль. Потом происходит итерация и проверка условия цикла. Так происходит до тех пор, пока условие будет истина. Как только переменная а будет увеличено до 10, условие цикла while станет ложным, и программа завершит свою работу.

Домашние задание.

  1. Написать программу используя цикл while. Условия задания следующие: пользователь вводит число, а программа их суммирует, до тех пор пока сумма не будет равна 100. После чего выводит сообщения в консоль о том что программа завершилась набрав сумму чисел равной 100.
  2. Написать программу, «защита от дурака». Принцип данной программы используется во многих программах и вам будет полезно самим с этим разобраться. Условия следующие: Программа просит ввести пользователю число от 5 до 10, если пользователь ввел меньше или больше заданного диапазона сообщить ему об ошибке и попросить повторно ввести данные.
  3. Написать игру, да да не пугайтесь 🙂 , вы уже все знаете что бы ее написать, единственное я вам дам подсказку и так условия игры. Представим у нас есть крейсер и нам нужно потопить вражескую подводную лодку, для этого мы будем использовать глубоководную бомбу. Игра предлагает пользователю ввести число до 10, которое будет означать глубину взрыва бомбы. Вражеская подводная лодка будет находиться на определенной глубине от 1-10. Что бы нам было интересней в неё играть мы будем случайным образом генерировать число, то есть глубину нахождения подводной лодки. Для генерации случайных чисел мы будем использовать метод random(); класса Math. Полная строка генерации чисел от 0-10 с присвоением переменной приведена ниже:

Про метод random() мы еще поговорим в наших будущий уроках, а пока вам достаточно скопировать код в вашу программу. Если говорить кратко в данном примере объявляем переменную depth которой присваиваем произведение чисел. Так же тут происходит привидения типа к int, но об этом позже. Не забывайте в программировании отсчет начинается с 0 а не с 1 как мы привыкли, потому вам предстоит оградить пользователя от подобного ввода, что бы пользователь не смог ввести 0 или цифры выше 10. Если число введенное пользователем не совпало с числом в переменно depth игра выводит в консоль, что мы промахнулись и просит повторит выстрел, до тех пор пока мы не попадем в подводную лодку, а точнее не совпадет число введенное пользователем с числом сохраненном в переменной depth.  После этого программа завершается. Однако имеется ограничения на выстрел, бомб у нас будет всего 3. Если пользователь промахнется 3 раза, программа завершится и напишет пользователю что он проиграл.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.