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

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


Скачать 4.47 Mb.
НазваниеКнига Программирование на Java для начинающих
АнкорПрезентация по Программированию
Дата03.02.2022
Размер4.47 Mb.
Формат файлаpdf
Имя файла638767.pdf
ТипКнига
#350143
страница5 из 18
1   2   3   4   5   6   7   8   9   ...   18

^
Исключающее
ИЛИ
a ^ b
1, если биты отличаются


НЕ (отрица- ние)
a
Изменяет значение бита на противоположное
<<
Сдвиг влево
n << p
Сдвигает биты значения n на p позиций влево
>>
Сдвиг вправо
n >> p
Сдвигает биты значения n на p позиций вправо
Например, используя побитовый оператор И в двоичной арифметике, мы запишем:
53
=
00110101
&
7
=
00000111
5
=
00000101
Внимание
Не путайте логический оператор И (&&) с побитовым оператором (&), а также ло- гический оператор ИЛИ (||) с побитовым оператором (|).

43
Очень распространенное применение побитовых операторов включа- ется в возможности использовать в одной переменной несколько зна- чений. Например, программа с несколькими целочисленными пере- менными (флагами), имеющими значение 1 или 0 (представляющие состояние «включено» и «выключено»), обычно требует 8 бит памяти.
Эти значения требуют одного бита, однако в одной переменной можно скомбинировать до 8 флагов, используя 1 бит для каждого флага. Состо- яние каждого флага можно вызвать с помощью побитовой опе рации:
1. Создайте новую программу с именем Bitwise, содержащую стан- дартный метод main.
class
Bitwise
{
public static void main( String[] args ) { }
}
2. Внутри фигурных скобок главного метода добавьте следующий код, объявляющий и инициализирующий целочисленную переменную со значением, представляющим общее состояние восьми флагов.
int fs = 53 ; // Двоичное представление 00110101
3. Добавьте следующие строки для вызова состояния каждого флага.
System.out.println("Флаг 1: "+(( (fs&1)>0) ? "ВКЛ" : "выкл"));
System.out.println("Флаг 2: "+(( (fs&2)>0) ? "ВКЛ" : "выкл"));
System.out.println("Флаг 3: "+(( (fs&4)>0) ? "ВКЛ" : "выкл"));
System.out.println("Флаг 4: "+(( (fs&8)>0) ? "ВКЛ" : "выкл"));
System.out.println("Флаг 5: "+(( (fs&16)>0)? "ВКЛ" : "выкл"));
System.out.println("Флаг 6: "+(( (fs&32)>0)? "ВКЛ" : "выкл"));
System.out.println("Флаг 7: "+(( (fs&64)>0)? "ВКЛ" : "выкл"));
System.out.println("Флаг 8: "+(( (fs&128)>0)?"ВКЛ": "выкл"));
4. Сохраните программу под именем Bitwise.java, затем скомпилируй- те и запустите.
JAVA
Bitwise.java
На заметку
В данном случае побитовая операция возвращает значе- ние 1 или 0, определяющее состояние каждого флага.

2. Выполнение операций
44
Заключение

Арифметические операторы можно использовать для формирова- ния выражений с двумя операндами для сложения (+), вычитания
(-), умножения (*), деления (/) и деления по модулю (%).
• Операторы инкремента (++) и декремента (--) изменяют един- ственный операнд на единицу.

Оператор присваивания (=) можно комбинировать с арифметиче- скими операторами, чтобы выполнять арифметические вычисле- ния, а затем присваивать результат.

Операторы сравнения можно использовать для формирования вы- ражений, оценивающих два операнда на равенство (==), неравен- ство (!=), больше (>) или меньше (<).

Оператор присваивания может быть скомбинирован с оператора- ми > и <, и он будет возвращать значение true при равенстве опе- рандов.

Логические операторы И (&&) и ИЛИ (||) формируют выражения, оценивающие два операнда и возвращающие логические значения
true
или false.
• Логический оператор
!
возвращает обратную логическую величи- ну от значения единственного операнда.
• Условный оператор
? :
оценивает заданное логическое выражение и возвращает один из двух операндов в зависимости от результа- та.

При оценке логических выражений на предмет истинности можно опускать знак == true.
• В сложных арифметических выражениях важно явно указывать порядок операторов с помощью добавления скобок.

Во избежание синтаксических ошибок кавычки в строковых пере- менных нужно предварять управляющим оператором \.
• Управляющие последовательности
\n
(новая строка) и \t (табуля- ция) организуют простое форматирование вывода.
• В особых ситуациях для выполнения двоичных арифметических операций полезно использовать побитовые операторы.

3
3
Создание
Создание
операторов
операторов
В данной главе
В данной главе
демонстрируется
демонстрируется
использование различных
использование различных
ключевых слов для
ключевых слов для
создания ветвлений
создания ветвлений
в Java-программах.
в Java-программах.
• Ветвление с помощью условного
• Ветвление с помощью условного
оператора if
оператора if
• Альтернативное
ветвление
• Альтернативное
ветвление
• Ветвление с помощью переключателей
• Ветвление с помощью переключателей
• Цикл
for
• Цикл
for
• Цикл
while
• Цикл
while
• Циклы
do-while
• Циклы
do-while
• Выход из циклов
• Выход из циклов
• Возврат
управления
• Возврат
управления
• Заключение
• Заключение

3. С
оздание опера
т
оров
46
Ветвление с помощью
условного оператора if
Ключевое слово if выполняет условную проверку, оценивая логиче- ское значение выражения. Оператор, следующий за этим выражением, будет выполняться, только если данное значение равно true (истина).
В противном случае программа переходит на последующие строки кода, выполняя альтернативное ветвление. Синтаксис оператора if вы- глядит следующим образом:
if (
проверочное-выражение ) код-для-исполнения-если-результат-истина ;
Исполняемый код может содержать несколько операторов, при этом они образуют блок операторов и заключаются в фигурные скобки.
1. Создайте новую программу с именем If, содержащую стандартный метод main.
class
If
{
public static void main ( String[] args) { }
}
2. Внутри фигурных скобок главного метода добавьте следующую простую проверку, в которой, при условии, что одно число больше другого, выполняется один оператор (в данном случае выполняет- ся вывод на печать).
if ( 5 > 1 ) System.out.println( "Пять больше чем один." ) ;
3. Добавьте вторую проверку, которая, при условии, что одно число меньше другого, будет выполнять блок операторов.
if ( 2 < 4 )
{
System.out.println( "Два меньше четырех." ) ;
System.out.println( "Проверка выполнена успешно." ) ;
}
4. Сохраните программу под именем If.java, затем скомпилируйте и запустите. Поскольку обе проверки дадут в результате значение
true
, то в обоих случаях все операторы выполнятся.
В проверяемом выражении может находиться сложное составное выражение. При этом проверяется несколько условий на предмет логической величины. Можно отделять скобками отдельные вы- ражения для установления порядка вычислений — выражения в скобках будут оцениваться первыми.
JAVA
If.java
Совет
В данном случае ключевые слова true и false опущены, поскольку проверочное выражение (2 < 4) — это краткая запись для (2 < 4
== true).

47
Логический оператор И (&&) будет возвращать true, только если оба проверяемых выражения имеют значение true:
if ( ( условие-1 ) && ( условие-2 ) ) исполнить-этот-код ;
Логический оператор ИЛИ (||) будет возвращать значение true, если хотя бы одно из проверочных выражений имеет значение
true
:
if ( (условие-1 ) || ( условие-2) ) исполнить-этот-код ;
Комбинации вышеуказанных выражений могут составлять более сложные и длинные проверочные выражения.
5. Добавьте следующую строку внутрь главного метода, для того что- бы объявить и проинициализировать целочисленную переменную с именем num.
int num = 8 ;
6. Добавьте третье проверочное выражение, которое будет выпол- нять оператор вывода в том случае, если значение переменной num находится внутри указанного диапазона или в точности равно ука- занному значению.
if ( ( ( num > 5 ) && ( num < 10 ) ) || ( num == 12 ) )
System.out.println(
"Число в диапазоне от 6 до 9 включительно или равно 12" ) ;
7. Заново скомпилируйте программу и запустите ее еще раз на вы- полнение, чтобы увидеть, что оператор выполняется после про- хождения сложной проверки.
8. Измените значение, присвоенное переменной num, таким образом, чтобы оно не входило в диапазон 6–9 и не было равно 12. Ском- пилируйте заново программу и запустите ее снова, чтобы увидеть, что теперь оператор после сложной проверки не выполняется.
Совет
Диапазон может быть расши- рен, если включить верхние и нижние границы, исполь- зуя операторы >= и <=.
На заметку
В проверочном выражении используется оператор равенства ==, а не оператор присваивания =.

3. С
оздание опера
т
оров
48
Альтернативное
ветвление
В дополнение к ключевому слову if можно использовать ключевое сло- во else, которое вместе с if образует оператор if else, обеспечиваю- щий альтернативные ветви для продолжения программы в соответ- ствии с результатом оценки проверочного выражения. В простейшем случае он просто предлагает альтернативный оператор для исполне- ния, а когда проверка неуспешна — выдает значение false:
if (
проверочное-выражение)
код-для-исполнения-если-результат-истина;
else
код-для-исполнения-если-результат-ложь ;
Каждая альтернативная ветвь может являться либо отдельным опе- ратором, либо блоком операторов, заключенным внутри фигурных скобок .
При помощи оператора if else можно строить более сложные кон- струкции для осуществления дополнительных проверок внутри каж- дой из ветвей if и else. При этом получаются вложенные операторы
if
. Когда программа обнаруживает выражение, оцененное как true, она исполняет операторы, связанные с этой ветвью, а затем выходит из оператора if else.
1. Создайте новую программу с именем Else, содержащую стандарт- ный метод main.
class
Else
{
public static void main ( String[] args ) { }
}
2. Внутри главного метода добавьте следующую строку с объявлени- ем и инициализацией целочисленной переменной hrs.
int hrs = 11 ;
3. Добавьте простое проверочное выражение, которое будет испол- нять один оператор, в случае если значение переменной hrs мень- ше 13.
if ( hrs < 13 )
{
System.out.println( "Доброе утро " + hrs ) ;
}
Внимание
Обратите внимание, что первый оператор заверша- ется точкой с запятой перед ключевым словом else.
JAVA
Else.java

49
4. Сохраните программу под именем Else.java, затем скомпилируйте и запустите для просмотра исполняемого оператора.
5. Присвойте переменной
hrs
значение 15, а затем добавьте альтерна- тивную ветвь сразу после оператора if.
else if ( hrs < 18 )
{
System.out.println( "Добрый день " + hrs ) ;
}
6. Сохраните изменения, скомпилируйте и запустите заново програм- му, чтобы увидеть, что исполняется альтернативный оператор.
Иногда полезно ставить последнюю ветвь else без вложенного оператора if, чтобы определить оператор по умолчанию, выпол- няемый в случае, если никакое проверочное выражение не будет истинно.
7. Присвойте переменной
hrs
значение 21, затем добавьте следующую ветвь, заданную по умолчанию, в конец оператора if else.
else System.out.println( "Добрый вечер: " + hrs ) ;
8. Сохраните изменения, перекомпилируйте и запустите программу еще раз, чтобы увидеть, что выполняется оператор, заданный по умолчанию.
На заметку
Условное ветвление — это фундаментальный процесс, с помощью которого ком- пьютер выполняет про- граммы.

3. С
оздание опера
т
оров
50
Ветвление с помощью
переключателей
Конструкции с операторами if else, предлагающими большое коли- чество условных ветвлений программы, могут стать довольно громозд- кими. В тех случаях, где нужно повторять проверку одного и того же значения переменной, более элегантное решение предлагает оператор
switch
(переключатель ). Типичный синтаксис блока оператора switch выглядит следующим образом:
switch (
проверяемая-переменная )
{
case значение-1 : код-для-исполнения-если-истина ; break ;
case значение-2 : код-для-исполнения-если-истина ; break ;
case значение-3 : код-для-исполнения-если-истина ; break ;
default
:
код-для-исполнения-если-ложь;
}
Оператор switch работает довольно необычно. Он проверяет значе- ния, указанные переменной, на соответствие значениям своих опций
case
, а затем выполняет оператор, связанный со значением определен- ной опции.
Последняя опция default является необязательной и может добав- ляться в оператор switch для указания операторов, которые будут ис- полняться в том случае, если ни одно из указанных значений не соот- ветствует проверяемой переменной.
Каждая опция оператора начинается с ключевого слова case и значе- ния для проверки, для которого стоит символ двоеточия и операторы, исполняемые в случае соответствия значению.
Важно помнить, что оператор и блок операторов, связанный с опреде- ленной опцией case, должны завершаться ключевым словом break.
В противном случае программа будет продолжать исполнять операто- ры другой опцией case после той, которая прошла проверку. Иногда это и полезно, чтобы указать несколько опций case, для которых нуж- но исполнить один и тот же блок операторов. Например, один оператор для каждой из трех опций выглядит следующим образом:
switch (
проверяемая-переменная )
{
case
значение-1 : case значение-2 : case значение-3 :
код-А-для-исполнения-если-истина ; break ;
Внимание
Отсутствие ключевого слова
break не является синтакси- ческой ошибкой, поэтому, во избежание неожиданных для вас результатов, вы должны убедиться, что все операторы break проставле- ны там, где это необходимо.

51
case
значение-4 : case значение-5 : case значение-6 :
код-B-для-исполнения-если-истина ; break ;
}
1. Создайте новую программу с именем Switch, содержащую стан- дартный метод main.
class
Switch
{
public static void main ( String[] args ) { }
}
2. Внутри главного метода добавьте объявление и инициализацию трех целочисленных переменных.
int month = 2, year = 2016, num = 31 ;
3. Добавьте блок оператора switch для проверки значений, присвоен- ных переменной month.
switch ( month )
{
}
4. Внутри блока
switch
добавьте опции case, присваивая новые зна- чения переменной num для месяцев 4, 6, 9 и 11.
case 4 : case 6 : case 9 : case 11 : num = 30 ; break ;
5. Добавьте опцию
case
с присваиванием нового значения перемен- ной num для месяца 2 в соответствии со значением переменной
year
case 2 : num = ( year % 4 == 0 ) ? 29 : 28 ; break ;
6. После блока
switch
в конце главного метода добавьте следующую строку для вывода всех трех значений переменных.
System.out.println( month+"/"+year+": "+num+"дней" ) ;
7. Сохраните программу под именем Switch.java, затем скомпилируй- те и запустите.
JAVA
Switch.java
Совет
Обратите внимание, что все три целочисленные пере- менные объявлены и про- инициализированы в одной строке, причем использова- но удобное сокращение.
На заметку
На шаге 5 используется условный оператор для эф- фективной проверки. Чтобы вспомнить, как он работает, можете вернуться к главе 2.

3. С
оздание опера
т
оров
52
Цикл for
Циклом называется блок кода , в котором с определенной периодич- ностью исполняются содержащиеся в нем операторы до тех пор, пока не выполнится определенное условие; затем цикл завершается, и про- грамма переходит к своей следующей задаче.
Наиболее часто используемая структура циклов в программировании на Java использует ключевое слово for, и синтаксис данной структуры следующий:
for (
инициализация ; проверочное-выражение ; итерация
1   2   3   4   5   6   7   8   9   ...   18


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