24326

Исследование циклических конструкций Java

Практическая работа

Исторические личности и представители мировой культуры

Оператор цикла for(цикл со счетчиком). Оператор цикла while (цикл с предусловием). Оператор цикла do...while (цикл с постусловием). Конструкции перехода (прерывания)

Русский

2014-10-12

183 KB

5 чел.

ПЗ-6-2

Исследование циклических конструкций Java

   Подготовка к занятию

1. Оператор цикла for(цикл со счетчиком)

2. Оператор цикла while (цикл с предусловием)

3. Оператор цикла do...while (цикл с постусловием)

4. Конструкции перехода (прерывания)

 

На занятии рассматривается порядок применения циклических конструкций языка Java при разработке приложений для Java SE в IDE NetBeans.

Для выполнения заданий этого занятия требуются программное обеспечение и ресурсы, перечисленные ниже:

Программное обеспечение

Ресурс для загрузки

Комплект для разработчика на языке Java (JDK) с IDE NetBeans

JDK 7u7 with NetBeans 7.2

http://www.oracle.com/technetwork/java/javase/downloads/jdk-7-netbeans-download-432126.html

Тестовый редактор TextPad 6

http://www.textpad.com/download/

Перед началом работы создайте на личном флеш-диске каталоги типа:

E:\NBprojectsFIO\pz62_FIOдля записи результатов работы – проектов NetBeans IDE.

E:\JavaFIO\pz62_FIO –- для записи результатов работы, полученных в TextPad.

Примечание: FIO – аббревиатура от фамилии, имени, отчества студента. Например, для Павленко Сергея Леонидовича FIO = PSL.

Подготовка к занятию

П1. Создание и настройка проекта

Используя методку, рассмотренную на  пз2, создайте и настройте в NetBeans IDE проект с именем MyApp62_FIO.

П.2. Добавление кода к автоматически созданному исходному файлу

К коду главного класса добавьте вывод сообщения "Исследование циклических конструкций Java" путем замены строки

           // TODO code application logic here

строкой 

           System.out.println("Исследование циклических конструкций Java");

       

Сохраните изменения путем выбора команды "Файл" > "Сохранить".

П3. Компиляция и выполнение проекта

Для запуска программы выполните следующие действия:

Выберите команду "Выполнить" > "Запустить главный проект" (F6).

На экране окно NetBeans IDE должно принять вид, подобный приведенному на рис.1.

Рис. 1

Если все получилось – то Вы готовы к выполнению заданий занятия.

Циклические конструкции

В языке Java есть три цикклические конструкции:

  •  оператор цикла for (цикл со счетчиком)
  •  оператор цикла while (цикл с предусловием)
  •  оператор цикла do...while (цикл с постусловием)

Перед рассмотрением циклических конструкций рассмотрим операторы инкремента ++ и декремента –, которые часто используюся в них.

Оператор "++" называется инкрементным ("увеличивающим"), а "--" декрементным ("уменьшающим"). У этих операторов имеются две формы, постфиксная (наиболее распространенная, когда оператор ставится после операнда) и префиксная (используется очень редко, в ней оператор ставится перед операндом).

Для любой числовой величины x выражение x++ или ++x означает увеличение x на 1, а выражение x-- или --x означает уменьшение x на 1.

Различие двух форм связано с тем, когда происходит изменение величины – после вычисления выражения, в котором используется оператор, для постфиксной формы, или до этого вычисления – для префиксной.

Например, присваивания j=i++ и j=++i дадут разные результаты. Если первоначально i=0, то первое присваивание даст 0, так как i увеличится на 1 после выполнения присваивания. А второе даст 1, так как сначала выполнится инкремент, и только потом будет вычисляться выражение и выполняться присваивание. При этом в обоих случаях после выполнения присваивания i станет равно 1.

1. Оператор цикла for(цикл со счетчиком)

1.1. Справочная информация

for(блок инициализации; условие выполнения тела цикла;

   блок изменения счетчиков)

оператор;

В блоке инициализации через запятую перечисляются операторы задания локальных переменных, область существования которых ограничивается оператором for. Также могут быть присвоены значения переменным, заданным вне цикла. Но инициализация может происходить только для переменных одного типа.

В блоке условия продолжения цикла проверяется выполнение условия, и если оно выполняется, идет выполнение тела цикла, в качестве которого выступает оператор. Если же не выполняется – цикл прекращается, и идет переход к оператору программы, следующему за оператором for.

После каждого выполнения тела цикла (очередного шага цикла) выполняются операторы блока изменения счетчиков. Они должны разделяться запятыми.

Пример:

for(int i=1,j=5; i+j<100; i++,j=i+2*j){

 ...

};

Каждый из блоков оператора for является необязательным, но при этом разделительные ";" требуется писать.

Наиболее употребительное использование оператора for – для перебора значений некоторой переменной, увеличивающихся или уменьшающихся на 1, и выполнения последовательности операторов, использующих эти значения. Переменная называется счетчиком цикла, а последовательности операторов – телом цикла.

1.2. Задание для практической работы

а). Дополните код главного класса проекта строками,  выполнение которых в приложении  позволит пояснить особенности работы с оператором цикла for.

(Это может быть код, решающий следующие задачи: вычисление суммы последовательных чисел,

вычисление суммы четных чисел – последовательных и в интервале, вычисление суммы нечетных чисел – последовательных и в интервале, вычисление факториала и т.п.)

б). Дополните строки программы, введенные согласно п.1.2а, строчными комментариями.

в). Для каждого примера получите скрины окон кода и вывода по образцу рис.2 и рис.3(см. пз-4).

г). Разместите строки кода, введенные согласно п.1.2а и п.1.2б,  в блочном комментарии.

Примечание:

Выполнение заданий по п.1.2а и п.1.2б для очередного примера осуществляйте после выполнения задания по п.1.2г для предыдущего.


2. Оператор цикла while (цикл с предусловием)

2.1. Справочная информация

while(условие)

   оператор;

Пока условие сохраняет значение true — в цикле выполняется оператор, иначе — действие цикла прекращается. Если условие с самого начала false, цикл прекращается, и тело цикла не выполнится ни разу.

Цикл while обычно применяют вместо цикла for в том случае, если условия продолжения достаточно сложные. В отличие от цикла for в этом случае нет формально заданного счетчика цикла, и не производится его автоматического изменения. За это отвечает программист. Хотя вполне возможно использование как цикла for вместо while, так и наоборот. Многие программисты предпочитают пользоваться только циклом for как наиболее универсальным.

Пример:

i=1;

x=0;

while(i<=n){

 x+=i;//эквивалентно x=x+i;

 i*=2;//эквивалентно i=2*i;

};

В операторе while очень часто совершают ошибки, приводящие к неустойчивости алгоритмов из-за сравнения чисел с плавающей точкой на неравенство. Как мы знаем, сравнивать их на равенство в подавляющем большинстве случаев некорректно из-за ошибок представления таких чисел в компьютере. Но большинство программистов почему-то считает, что при сравнении на неравенство проблем не возникает, хотя это не так. Например, если организовать с помощью оператора while цикл с вещественным счетчиком, аналогичный разобранному в разделе, посвященному циклу for. Пример типичной ошибки в организации такого цикла приведен ниже:

double a=…;

double b=…;

double dx=…;

double x=a;

while(x<=b){

 …

 x=x+dx;

};

Как мы уже знаем, данный цикл будет обладать неустойчивостью в случае, когда на интервале от a до b укладывается целое число шагов. Например, при a=0, b=10, dx=0.1 тело цикла будет выполняться при x=0, x=0.1, …, x=9.9. А вот при x=10 тело цикла может либо выполниться, либо не выполниться – как повезет! Причина связана с конечной точностью выполнения операций с числами в формате с плавающей точкой. Величина шага dx в двоичном представлении чуть-чуть отличается от значения 0.1, и при каждом цикле систематическая погрешность в значении x накапливается. Поэтому точное значение x=10 достигнуто не будет, величина x будет либо чуть-чуть меньше, либо чуть-чуть больше. В первом случае тело цикла выполнится, во втором – нет. То есть пройдет либо 100, либо 101 итерация (число выполнений тела цикла).

2.2. Задание для практической работы

а). Дополните код главного класса проекта строками,  выполнение которых в приложении  позволит пояснить особенности работы с оператором цикла while.

(Это может быть код, решающий следующие задачи: вычисление суммы последовательных чисел,

вычисление суммы четных чисел – последовательных и в интервале, вычисление суммы нечетных чисел – последовательных и в интервале, вычисление факториала и т.п.)

б). Дополните строки программы, введенные согласно п.2.2а, строчными комментариями.

в). Для каждого примера получите скрины окон кода и вывода по образцу рис.2 и рис.3(см. пз-4).

г). Разместите строки кода, введенные согласно п.2.2а и п.2.2б,  в блочном комментарии.

Примечание:

Выполнение заданий по п.2.2а и п.2.2б для очередного примера осуществляйте после выполнения задания по п.2.2г для предыдущего.

3. Оператор цикла do...while (цикл с постусловием)

3.1. Справочная информация

do

 оператор;

while(условие);

Если условие принимает значение false, цикл прекращается. Тело цикла выполняется до проверки условия, поэтому оно всегда выполнится хотя бы один раз.

Пример:

int i=0;

double x=1;

do{

 i++; // i=i+1;

 x*=i; // x=x*i;

}

while(i<n);

Если с помощью оператора do…while организуется цикл с вещественным счетчиком или другой проверкой на равенство или неравенство чисел типа float или double, у него возникают точно такие же проблемы, как описанные для циклов for и while.

При необходимости организовать бесконечный цикл (с выходом изнутри тела цикла с помощью оператора прерывания) часто используют следующий вариант:

do{

 …

}

while(true);

3.2. Задание для практической работы

а). Дополните код главного класса проекта строками,  выполнение которых в приложении  позволит пояснить особенности работы с оператором цикла do … while.

(Это может быть код, решающий следующие задачи: вычисление суммы последовательных чисел,

вычисление суммы четных чисел – последовательных и в интервале, вычисление суммы нечетных чисел – последовательных и в интервале, вычисление факториала и т.п.)

б). Дополните строки программы, введенные согласно п.3.2а, строчными комментариями.

в). Для каждого примера получите скрины окон кода и вывода по образцу рис.2 и рис.3(см. пз-4).

г). Разместите строки кода, введенные согласно п.3.2а и п.3.2б,  в блочном комментарии.

Примечание:

Выполнение заданий по п.3.2а и п.3.2б для очередного логического оператора осуществляйте после выполнения задания по п.3.2г для предыдущего.


4
. Конструкции перехода (прерывания)

4.1. Справочная информация

Довольно часто требуется при выполнении какого-либо условия прервать цикл и перейти к выполнению другого алгоритма или очередной итерации цикла. В Java имеются гибкие и структурные средства для решения этих проблем - операторы continue и break:

Операторы continue и break используются в двух вариантах – без меток для выхода из текущего (самого внутреннего по вложенности) цикла, и с меткой - для выхода из помеченного ей цикла. Меткой является идентификатор, после которого стоит двоеточие. Метку можно ставить непосредственно перед ключевым словом, начинающим задание цикла ( for, while, do ).

  •  continue; – прерывание выполнения тела цикла и переход к следующей итерации (проверке условия) текущего цикла;
  •  continue имя метки; – прерывание выполнения тела цикла и переход к следующей итерации (проверке условия) цикла, помеченного меткой ( label );
  •  break; – выход из текущего цикла;
  •  break имя метки; – выход из цикла, помеченного меткой;

4.2. Задание для практической работы

а). Дополните код главного класса проекта строками,  выполнение которых в приложении  позволит пояснить особенности работы операторов continue и break.

б). Дополните строки программы, введенные согласно п.4.2а, строчными комментариями.

в). Для каждого побитового оператора получите скрины окон кода и вывода по примеру рис.2 и рис.3(см. пз-4).

г). Разместите строки кода, введенные согласно п.4.2а и п.4.2б,  в блочном комментарии.

Примечание:

Выполнение заданий по п.4.2а и п.4.2б для очередного побитового оператора осуществляйте после выполнения задания по п.4.2г для предыдущего.


4.
Отчет о занятии

Полученные в ходе занятия результаты оформить в виде отчета средствами MS Word и записать в файл pz62_FIO.doc. Отчет должен содержать:

1. Тему занятия и учебные вопросы.

2. Скрины с ответами и результатами выполнения всех действий по учебным вопросам занятия – для личных проектов NetBeans IDE.

3. Выводы с анализом полученных результатов – лучше отдельно по вопросам занятия.

4. Фамилию, имя и отчество студента, представляющего отчет.

По итогам занятия создать папку pz62-Фамилия, в которой разместить:

- файл отчета pz6_FIO.doc

- папку pz62_FIO с папкой проекта  MyApp62_FIO

Папку pz62-Фамилия поместить в архив (rar, zipбез пароля!!!) и отослать преподавателю по e-mail.


7


 

А также другие работы, которые могут Вас заинтересовать

23225. Світогляд як духовно-практичний спосіб освоєння світу 33 KB
  Світогляд як духовнопрактичний спосіб освоєння світу Філософія має органічний звязок зі світоглядом. Що ж таке світогляд Слід підкреслити що у визначенні цього поняття немає чіткості. У сучасних філософських працях про світогляд мовиться таке: €œсвітогляд це форма суспільної відомості; €œсвітогляд це форма самоусвідомлення особистості€; €œсвітогляд це система поглядів на світ і на місце людини у цьому світі€; €œсвітогляд це система принципів діяльності людини€; €œ світогляд це погляд людини на світ як ціле€; світогляд це...
23226. Поняття суспільного виробництва та його різновиди 35.5 KB
  Поняття суспільного виробництва та його різновиди. Продуктивні сили становлять лише одну сторону суспільного виробництва. Адже в процесі виробництва люди вступають у певні відносини не тільки з природою а й один з одним. Ці взаємовідносини людей у процесі виробництва дістали назву виробничі відносини і представляють другу складову способу виробництва.
23227. Поняття власності та її норми 31.5 KB
  Власність означає право на дії з речами які підлягають обміну. Важливі типи власності включають нерухомістьземля особисту власністьінша фізичне майно та інтелектуальну власністьправа на артистичні творінням винаходам і т. Право на власність пов'язано з власністю яка встановлює відношення між товарами послугами та іншими людьми або групами запевняючи власника на право обійтися без власності в манері яку він або вона вважає доцільною. Громадська власність це будьяка власність якою керує держава або ціле співтовариство.
23228. НТР:сутність, закономірності та соціальні наслідки 41 KB
  НТР це поступальний рух науки і техніки еволюційний розвиток усіх елементів продуктивних сил суспільного виробництва на основі широкого пізнання і освоєння зовнішніх сил природи це об'єктивна постійнодіюча закономірність розвитку матеріального виробництва результатом якої є послідовне вдосконалення техніки технології та організації виробництва підвищення його ефективності. Виявом науковотехнічної революції є до корінна перебудова всієї технічної і технологічної основи виробництва його організації й управління які здійснюються на...
23229. Поняття політики 32.5 KB
  Отже політична система як одна із частин або підсистем соціальної системи дає змогу виявити межі політики та політичних відносин їхні елементи та взаємозвязок між ними функції. Як одна з форм соціального руху матеріїполітична система тісно повязана з особливою формою діяльності людей політикою. На відміну від інших систем суспільного життя політична система має ряд особливостей: вона бере участь у розвязанні таких загально соціальних завдань як інтеграція суспільства розподіл в ньому матеріальних і духовних цінностей. Важливим...
23230. Поняття політичної системи та її структури 39 KB
  Поняття політичної системи та її структури Політична система це цілісна інтегрована сукупність політичних суб'єктів структур і відносин що відображає інтереси всіх політичних і соціальних сил. Ознаки політичної системи: 1. Структура політичної системи: 1. Політизовані або невласне політичні організаціїучасть у здійсненні політичної влади для яких є лише одним з аспектів їх функціонування.