Главная страница

Презентация по Программированию. Книга Программирование на Java для начинающих


Скачать 4.47 Mb.
НазваниеКнига Программирование на Java для начинающих
АнкорПрезентация по Программированию
Дата03.02.2022
Размер4.47 Mb.
Формат файлаpdf
Имя файла638767.pdf
ТипКнига
#350143
страница6 из 18
1   2   3   4   5   6   7   8   9   ...   18
)
{
операторы-для-выполнения-на-каждой-итерации ;
}
Скобки после ключевого слова for должны содержать три управляю- щих выражения, которые и определяют действие цикла.
• Инициализация — присваивает начальное значение переменной- счетчику
, который будет подсчитывать число итераций цикла.
Переменная для этих целей может быть объявлена прямо здесь, и обычно это самая простая целочисленная переменная с именем i.
• Проверочное
выражение — данное выражение оценивается в на- чале каждой итерации цикла на предмет логического значения true.
Когда оценка возвращает значение true, итерация продолжается, а при возвращении значения false цикл немедленно прекращает свою работу, не завершая текущую итерацию.
• Итерация — изменяет текущее значение переменной-счетчика, храня в себе общее число итераций, сделанных циклом. Обычно здесь используется выражение i++ для увеличения либо i-- для уменьшения значения счетчика.
Исполняемый на каждой итерации цикла код может быть как одиноч- ным оператором, так и блоком операторов и даже вложенным циклом.
Каждый цикл в какой-то определенной точке должен привести зна- чение проверочного выражения в значение false, иначе будет создан так называемый бесконечный цикл. В общем случае проверочное вы- ражение обычно оценивает текущее значение переменной-счетчика для выполнения определенного количества итераций. Например, если проинициализировать счетчик i значением 1 и увеличивать его на еди- ницу с каждой итерацией, то после 10 итераций значение выражения
i < 11
станет ложным. Таким образом, цикл, исполнившись 10 раз, завершится.
На заметку
Итерацию часто называют счетчиком приращений, поскольку чаще всего она используется для увели- чения значения, а не для уменьшения.

53
1. Создайте новую программу с именем For, содержащую стандарт- ный метод main.
class
For
{
public static void main ( String[] args ) { }
}
2. Внутри главного метода объявите и проинициализируйте целочис- ленную переменную для подсчета общего числа итераций.
int num = 0 ;
3. Добавьте цикл
for
, выполняющий три итерации и отображающий текущее значение своего счетчика-переменной i на каждой ите- рации.
for ( int i = 1 ; i < 4 ; i++ )
{
System.out.println( "Внешний цикл i=" + i ) ;
}
4. Внутри блока цикла for добавьте вложенный цикл for, который также выполняет три итерации, отображая текущее значение счетчика-переменной j и общее число итераций.
for ( int j = 1 ; j < 4 ; j++ )
{
System.out.print( "\tВнутренний цикл j=" + j ) ;
System.out.println( "\t\tВсего num="+ (++num) ) ;
}
5. Сохраните программу под именем For.java, затем скомпилируйте и запустите, чтобы увидеть вывод.
JAVA
For.java
Внимание
Операторы инкремента и декремента могут быть как префиксными , так и пост- фиксными . В первом случае они вначале увеличивают значение переменной, а за- тем происходит обращение к ней, во втором случае — наоборот.

3. С
оздание опера
т
оров
54
Цикл while
Альтернативной структурой для цикла for является структура цикла, использующая ключевое слово while и имеющая следующий синтак- сис:
while (
проверочное-выражение )
{
операторы-для-выполнения-на-каждой-итерации ;
}
Подобно циклу for цикл while тоже с периодичностью выполняет со- держащиеся в нем операторы до тех пор, пока проверочное условие не будет иметь значение true. В этом случае цикл завершает свою работу, и программа переходит к следующей задаче.
В отличие от цикла for, в скобках после ключевого слова while не содержится ни инициализатора, ни модификатора
, изменяющего переменную-счетчик. Это означает, что в проверочном выражении должна находиться какая-то величина, которая будет изменяться по мере выполнения итераций цикла, иначе будет создан бесконечный цикл , выполняющий свои операторы.
Проверочное выражение оценивается в начале каждой итерации цикла на предмет логического значения true. Если результат проверки воз- вращает true, итерация продолжается, в противном случае цикл не- медленно завершается, не выполняя итерацию.
Обратите внимание, что если проверочное выражение возвращает зна- чение false при самой первой оценке, то операторы цикла никогда не исполнятся.
При помощи цикла while можно смоделировать структуру цикла for, при этом в проверочном выражении будет оцениваться переменная- счетчик, которая станет создаваться вне цикла, а изменять свое значе- ние внутри цикла на каждой его итерации. Например, внешний цикл
for
из предыдущего примера можно воссоздать при помощи цикла
while
следующим образом:
int i = 1 ;
while ( i < 4 )
{
System.out.println( "Внешний цикл i=" +i ) ;
i++
;
}
Внимание
Бесконечный цикл заблоки- рует программу, поскольку итерации продолжают выполняться — в системе
Windows, чтобы выйти из этой ситуации, нажмите со- четание клавиш Ctrl+C.

55
Таким образом, мы переместили инициализатор снаружи цикла перед структурой while, а модификатор — внутри блока операторов самого цикла.
1. Создайте новую программу с именем While, содержащую стандарт- ный метод main.
class
While
{
public static void main ( String[] args ) { }
}
2. Внутри главного метода объявите и проинициализируйте целочис- ленную переменную с именем num.
int num = 100 ;
3. Добавьте цикл
while
, который будет отображать текущее значение переменной num, пока оно остается больше нуля.
while ( num > 0 )
{
System.out.println( "Обратный отсчет с использованием While: " + num ) ;
}
4. В конец блока while добавьте модификатор, чтобы уменьшать зна- чение переменной num на 10 на каждой итерации, тем самым избе- гая бесконечного цикла.
num -= 10 ;
5. Сохраните программу под именем While.java, затем скомпилируйте и запустите.
JAVA
While.java
На заметку
Присваивание в данном модификаторе — это со- кращенная запись для
num = (num - 10).

3. С
оздание опера
т
оров
56
Циклы do-while
Одной из вариаций структуры цикла while, описанной на предыдущей странице, является цикл, использующий ключевое слово do и имею- щий следующий синтаксис:
do
{
операторы-для-выполнения-на-каждой-итерации ;
}
while (
проверочное-выражение ) ;
Подобно циклам for и while, цикл do-while с периодичностью выпол- няет содержащиеся в нем операторы до тех пор, пока проверочное вы- ражение не примет значение true — затем цикл завершает свою работу и программа переходит к следующей задаче.
В отличие от циклов for и while, в цикле do-while проверочное выра- жение стоит после блока, содержащего выполняющиеся в цикле опера- торы. Проверочное выражение оценивается в конце каждой итерации цикла на предмет логического значения. Когда проверочное выраже- ние в результате возвращает значение true, продолжается следующая итерация, в противном случае цикл немедленно завершается. Это озна- чает, что операторы внутри цикла do-while исполнятся, по крайней мере, один раз. Обратите внимание, что если проверочное выражение возвратит значение false при первой его оценке, то операторы цикла при этом уже один раз выполнены.
С помощью цикла do-while можно также смоделировать структуру цикла for, оценивая переменную-счетчик в его проверочном выраже- нии, при этом инициализатор будет находиться вне цикла, а модифика- тор — внутри блока операторов, точно так же, как в цикле while.
Для всех видов циклов for, while и do-while, если они содержат только один оператор для исполнения, можно опускать фигурные скобки во- круг этого оператора. Но если вы захотите добавить дополнительные операторы, то обойтись без скобок не получится.
Какой из циклов — for, while или do-while — выбрать при програм- мировании, зависит от персональных предпочтений и от того, для чего используется цикл. Структура цикла for удобно размещает ини- циализатор, проверочное выражение и модификатор (после ключевого слова for). Структура цикла while может быть более лаконичной, но вы не должны забывать включить модификатор в операторы цикла во избежание его зацикливания. Цикл do-while просто добавляет воз- можность исполнения своего блока операторов хотя бы один раз перед
Совет
Операторы, исполняемые в цикле, всегда заключайте в скобки — это внесет яс- ность и улучшит обслужи- ваемость кода.

57
оценкой проверочного выражения — как демонстрируется в примере ниже.
1. Создайте новую программу с именем DoWhile, содержащую стан- дартный метод main.
class
DoWhile
{
public static void main ( String[] args ) { }
}
2. Внутри главного метода добавьте объявление и инициализацию целочисленной переменной с именем num.
int num = 100 ;
3. Добавьте цикл
do-while
для вывода текущего значения перемен- ной num, пока оно меньше нуля.
do
{
System.out.println( "Используем DoWhile: " + num ) ;
}
while ( num < 0 )
4. Добавьте в конец блока do-while модификатор для изменения зна- чения переменной num на каждой итерации, тем самым избежав бесконечного цикла.
num += 10 ;
5. Сохраните программу под именем DoWhile.java, затем скомпили- руйте и запустите — вы увидите, что проверочное условие не вы- полняется, но оператор в цикле выполняется один раз.
JAVA
DoWhile.java
На заметку
Присваивание в этом моди- фикаторе является сокра- щенной записью для num =
(num + 10).

3. С
оздание опера
т
оров
58
Выход из циклов
Ключевое слово break может применяться для преждевременного пре- рывания цикла при определенном условии. Оператор break располага- ется внутри блока операторов цикла и предваряется проверочным вы- ражением. Когда проверка возвращает значение true, цикл немедленно завершается и программа переходит к следующей задаче. Например, в случае вложенного цикла происходит переход к следующей итерации внешнего цикла.
1. Создайте новую программу с именем Break, содержащую стандарт- ный метод main.
class
Break
{
public static void main ( String[] args ) { }
}
2. Внутри главного метода создайте два вложенных цикла for. Эти циклы будут отображать значение своих счетчиков на каждой из трех итераций.
for ( int i = 1 ; i < 4 ; i++ )
{
for ( int j = 1 ; j < 4 ; j++ )
{
System.out.println( "Итерация i="+i+" j="+j ) ;
}
}
3. Сохраните программу под именем Break.java, затем скомпилируйте и запустите, чтобы увидеть вывод.
Здесь выполняются три итерации внешнего цикла, и на каждой ис- полняется внутренний цикл. Чтобы остановить второе исполнение внутреннего цикла, можно добавить оператор break.
JAVA
Break.java

59
4. Добавьте оператор
break
в начало блока операторов внутреннего цикла, чтобы выполнить выход из этого цикла, затем перекомпи- лируйте и запустите заново программу.
if ( i == 2 && j == 1 )
{
System.out.println( "Выход из внутреннего цикла при i=" +i+ " j=" +j ) ;
break
;
}
Существует возможность пропустить одну итерацию цикла при определенном условии — для этого используется ключевое слово
continue
. Оператор continue располагается внутри блока операто- ров цикла и также предваряется проверочным выражением. Если проверка выдает значение true, то данная итерация завершается.
5. Добавьте оператор
continue
в начало блока операторов внутренне- го цикла, чтобы пропустить первую итерацию внутреннего цикла, затем перекомпилируйте и запустите заново программу.
if ( i == 1 && j == 1 )
{
System.out.println( "Продолжение работы внутреннего цикла при i=" +i+ " j=" +j ) ;
continue;
}
На заметку
В данном случае оператор
break пропускает все три итерации внутреннего цикла на второй итерации внешне- го цикла.
На заметку
В данном случае оператор
continue позволяет пропу- стить первую итерацию вну- треннего цикла на первой итерации внешнего цикла.

3. С
оздание опера
т
оров
60
Возврат управления
Стандартное поведение операторов break и continue может быть изме- нено, если указать явно, что управление следует передать помеченному оператору цикла, указав имя его метки.
1. Создайте новую программу с именем Label, содержащую стандарт- ный метод main.
class
Label
{
public static void main ( String[] args ) { }
}
2. Внутри главного метода создайте два вложенных цикла for, которые выводят значения своих счетчиков на каждой из трех ите раций.
for ( int i = 1 ; i < 4 ; i++ )
{
for ( int j = 1 ; j < 4 ; j++ )
{
System.out.println( "Итерация i="+i+ " j="+j ) ;
}
}
3. Сохраните программу под именем Label.java, затем скомпилируйте и запустите.
Для того чтобы пометить цикл, перед ним ставится имя метки и символ двоеточия.
4. Отредактируйте начало внешнего цикла, пометив его меткой
outerLoop
outerLoop : for ( int i = 1 ; i < 4 ; i++ )
JAVA
Label.java

61
Чтобы явно указать программе, что нужно перейти к этому внеш- нему циклу, поставьте имя данной метки после ключевого слова
continue
5. Добавьте оператор
continue
в начало блока операторов внутренне- го цикла, чтобы перейти к следующей итерации внешнего цикла, затем перекомпилируйте и запустите заново программу.
if ( i == 1 && j == 1 )
{
System.out.println( "outerLoop продолжает работу при i=" +i+ " j=" +j ) ;
continue outerLoop ;
}
Для явного указания того, что программа должна выйти из внеш- него цикла, введите после ключевого слова break имя этой метки.
6. Добавьте оператор
break
в начало блока операторов внутреннего цикла для выхода из внешнего цикла, затем снова скомпилируйте и запустите программу.
if ( i == 2 && j == 3 )
{
System.out.println(
"Выход из outerLoop при i=" +i+ " j=" +j ) ;
break outerLoop ;
}
На заметку
В данном случае оператор
continue пропускает все три итерации первого прохода внутреннего цикла, возвра- щая управление внешнему циклу.
На заметку
В данном случае опера- тор break пропускает все дальнейшие итерации всей структуры цикла, совершая выход из внешнего цикла.

3. С
оздание опера
т
оров
62
Заключение
• Ключевое слово
if
используется для оценки проверочного выра- жения на предмет логических значений true или false.
• Блок операторов
if
может содержать один или более операторов, которые выполняются только тогда, когда проверочное выражение возвращает значение true.
• Ключевое слово
else
определяет альтернативные операторы для выполнения программы в случае, когда проверка, выполняемая ключевым словом if, возвращает значение false.
• Комбинация операторов
if else
позволяет программе осущест- влять условное ветвление.
• Оператор
switch
в большинстве случаев предлагает хорошую аль- тернативу операторам if else, предоставляя различные опции для выбора.
• Каждая опция
case
может быть завершена ключевым словом break, и, таким образом, выполняться будут только операторы, связанные с этой опцией.
• Ключевое слово
default
может определять операторы, исполняе- мые в случае, когда все опции case возвращают значение false.
• Цикл с периодичностью исполняет операторы, содержащиеся в нем, до тех пор, пока проверочное выражение не возвратит зна- чение false.

После ключевого слова for в скобках указываются инициализатор, проверочное выражение и модификатор счетчика.
• В циклах
while
и do-while во избежание входа в бесконечный цикл нужно изменять значение переменной, используемой в провероч- ном выражении.
• В циклах
for
и while проверочное выражение оценивается в самом начале — перед первой итерацией цикла.
• В циклах
do-while
проверочное выражение оценивается в конце цикла — после первой итерации.

Итерацию цикла можно пропустить с помощью ключевого слова
continue

Используя ключевое слово break, можно завершать работу цикла.
• Вложенные внутренние циклы могут использовать метки вместе с ключевыми словами break и continue, чтобы передавать управ- ление внешнему циклу.

4
1   2   3   4   5   6   7   8   9   ...   18


написать администратору сайта