
- •Глава 2
- •Глава 2. Обзор языка Java 31_
- •Глава 2. Обзор языка Java
- •Глава 2. Обзор языка Java 37
- •Глава 2. Обзор языка Java 39
- •Глава 2. Обзор языка Java 41
- •Часть I. Язык Java
- •Глава 2. Обзор языка Java 43_
- •Глава 2. Обзор языка Java 45_
- •Глава 2. Обзор языка Java 47
- •Глава 2. Обзор языка Java 49_
- •Часть I. Язык Java
- •Глава 2. Обзор языка Java 57
- •Глава 3
- •Глава 3. Типы данных, переменные и массивы 53
- •Глава 3. Типы данных, переменные и массивы _ 55
- •Глава 3. Типы данных, переменные и массивы
- •Глава 3. Типы данных, переменные и массивы 59_
- •Глава 3. Типы данных, переменные и массивы 61_
- •Глава 3. Типы данных, переменные и массивы
- •Глава 3. Типы данных, переменные и массивы 65_
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы 67_
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы 69_
- •Глава 3. Типы данных, переменные и массивы 71_
- •Глава 3. Типы данных, переменные и массивы 73_
- •Глава 3. Типы данных, переменные и массивы
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы _ 77_ Эта программа генерирует следующий вывод:
- •Глава 3. Типы данных, переменные и массивы 79
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы 81_
- •Глава 4
- •Глава 4. Операции 83
- •84 Часть I. Язык Java
- •Глава 4. Операции 85_
- •Глава 4. Операции 87_
- •88_ Часть I. Язык Java
- •Глава 4. Операции 89
- •Глава 4. Операции 91_
- •Глава 4. Операции 93_
- •Глава 4. Операции 95_
- •Глава 4. Операции 97_
- •Глава 4. Операции 99
- •Глава 4. Операции 101
- •Глава 4. Операции 103
- •104 Часть I, Язык Java
- •Глава 4. Операции 105
- •Глава 5
- •Глава 5, Управляющие операторы 107
- •Глава 5. Управляющие операторы 109
- •110 Часть I. Язык Java
- •Глава 5, Управляющие операторы 111
- •Глава 5. Управляющие операторы 113
- •Глава 5. Управляющие операторы
- •Глава 5. Управляющие операторы 117
- •118 Часть I. Язык Java
- •Глава 5. Управляющие операторы 119
- •Глава 5. Управляющие операторы 121
- •122 Часть I. Язык Java
- •Глава 5. Управляющие операторы 123
- •Глава 5. Управляющие операторы 125
- •Глава 5. Управляющие операторы 127
- •Глава 5. Управляющие операторы 129
- •Глава 5. Управляющие операторы
- •Глава 6
- •134 Часть I. Язык Java
- •Глава 6. Введение в классы 135
- •136 Часть I. Язык Java
- •Глава 6. Введение в классы _ 137
- •Глава 6. Введение в классы 139
- •Глава 6. Введение в классы
- •Глава 6. Введение в классы 143
- •Глава 6. Введение в классы 145
- •Глава 6. Введение в классы 147
- •Глава 6. Введение в классы 149
- •Глава 6. Введение в классы 151
- •154 Часть I. Язык Java
- •Глава 6. Введение в классы 155
- •Глава 6. Введение в классы 157
- •Глава 7
- •Глава 7. Методы и классы 159
- •Глава 7. Методы и классы . 161
- •Глава 7. Методы и классы • 163
- •164 Часть I. Язык Java
- •Глава 7. Методы и классы 165
- •Глава 7. Методы и классы 167
- •Глава 7. Методы и классы 169
- •Глава 7, Методы и классы 171-
- •Глава 7. Методы и классы 173
- •Глава 7. Методы и классы 775
- •Глава 7. Методы и классы 177
- •Глава 7. Методы и классы ' 179
- •Глава 7. Методы и классы 1_81_
- •Глава 7. Методы и классы 1_83
- •184 '• Часть I. Язык Java
- •Глава 7. Методы и классы . 185
- •Глава 7. Методы и классы 187
- •Глава 8
- •Глава 8. Наследование 191
- •Глава 8. Наследование 193
- •Глава 8, Наследование 195
- •Глава 8. Наследование 197
- •198 Часть I. Язык Java
- •Глава 8, Наследование 199
- •Глава 8. Наследование 201
- •202 Часть I. Язык Java
- •Глава 8. Наследование 203
- •Глава 8. Наследование 205
- •Глава 8. Наследование 207
- •Глава 8. Наследование 209
- •Глава 8. Наследование 211
- •Глава 8. Наследование 213
- •Глава 8. Наследование 215
- •Глава 8. Наследование 217
- •Глава 12
- •Глава 12. Ввод/вывод, апплеты и другие темы 303_
- •Глава 12. Ввод/вывод, апплеты и другие темы . 305
- •Глава 12. Ввод/вывод, алплеты и другие темы 307
- •Глава 12. Ввод/вывод, апплеты и другие темы 309
- •Глава 12. Ввод/вывод, апплеты и другие темы 311
- •Глава 12. Ввод/вывод, апплаты и другие темы 313
- •314 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплеты и другие темы 315
- •Глава 12. Ввод/вывод, апплеты и другие темы 317
- •Глава 12. Ввод/вывод, апплеты и другие темы 319
- •320 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплеты и другие темы 321
- •Глава 12. Ввод/вывод, апплеты и другие темы 323
- •324 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплеты и другие темы 325
- •326 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплегы и другие темы 327
Глава 5. Управляющие операторы
11 i
равенство с выражением оператора switch. Компилятор не имеет аналогичных знаний длинного списка выражений if.
Операторы цикла
Операторы цикла (итераций) Java — это for, while и do while. Как вы, вероятно, знаете, цикл повторно выполняет один и тот же набор команд, пока не выполнится условие завершения. Java имеет набор циклических операторов для удовлетворения любой потребности программирования.
Оператор цикла while
Цикл while — наиболее фундаментальный оператор цикла Java. Он повторяет оператор или блок операторов, пока его управляющее выражение имеет значение true. Вот его общая форма:
while (condition) { // тело цикла
Здесь condition может быть любым булевским выражением. Тело цикла будет выполняться до тех пор, пока условное выражение имеет значение true. Когда condition становится false, управление передается строке программы, следующей непосредственно за циклом. Фигурные скобки не нужны, если повторяется одиночный оператор.
Следующий while-цикл считает в обратном порядке от 10, печатая точно десять "тик"-строк:
// Демонстрирует while-цикл, class While {
public static void main(String args[]) { int n = 10;
while(n > 0} (
System.out.println("тик " + n); n—; ) } }
Когда вы выполните эту программу, она "тикнет" ровно десять раз:
тик 10 тик 9 тик 8 тик 7
716 . Часть I. Язык Java
тик 6
тик 5
тик 4
тик 3 '
тик 2
тик 1
Так как цикл while оценивает условное выражение в самом начале своей работы, тело цикла не будет выполняться ни одного раза,.если условие сразу же имеет значение false. Например, в следующем фрагменте обращение к println о никогда не выполняется:
Int а = 10, Ь = 20;
while(а > Ь)
System.out.println("Эта строка никогда не выведется");
Тело цикла while (или любого другого цикла Java) может быть пустым. Это потому, что в Java синтаксически допустим пустой (null) оператор (который состоит только из точки с запятой). Например, рассмотрим следующую программу:
// Тело цикла может быть пустым, class NoBody {
public static void main(String args[]) { int i, j;
i = 100; j = 200;
// найти среднюю точку между i и j
while(++i < —j); // в этом цикле нет тела
System.out.println("Средняя точка " + i); } }
Эта программа находит среднюю точку между i и j. Она генерирует следующий вывод:
Средняя точка 150
Посмотрим, как цикл while работает. Значения переменной i формирует операция инкремента, а значение j — декремента. Затем эти значения сравниваются друг с другом. Если новое значение i все еще меньше, чем новое значение j, цикл повторяется. Если i равно или больше j, цикл останавливается. На выходе из цикла i будет содержать значение, которое является средним между первоначальными значениями i и j. (Заметим, что эта процедура работает только тогда, когда в самом начале i меньше, чем j.) He
Глава 5. Управляющие операторы 117
трудно видеть, что нет никакой потребности в теле цикла, все действия происходят непосредственно в самом условном выражении. В профессионально составленном коде Java короткие циклы часто кодируются без тел, когда управляющее выражение может само обрабатывать все детали.
Оператор цикла do while
Как вы только что видели, если условное выражение, управляющее циклом while, первоначально имеет значение false, то тело цикла не будет выполняться вообще. Однако иногда желательно выполнить тело while-цикла по крайней мере один раз, даже если условное выражение сначала имеет значение false. Другими словами, существуют ситуации, когда вы хотели бы проверить выражение завершения в конце цикла, а не в начале. К счастью, в Java имеется цикл do while, который делает именно это. Цикл do while всегда выполняет свое тело по крайней мере один раз, потому что его условное выражение размещается в конце цикла. Общая форма цикла:
do{
// тело цикла } while (condition);
Каждая итерация цикла do while сначала выполняет тело цикла, а затем оценивает условное выражение. Если это выражение — true, цикл повторится. Иначе, цикл заканчивается. Как и у всех Java-циклов, condition должно быть булевским выражением.
Ниже показана переделанная версия программы с "тиками", которая демонстрирует цикл do while. Она генерирует тот же вывод, что и прежде.
// Демонстрирует do-while цикл, class DoWhile {
public static void main(String args[]) { int n = 10;
do {
System.out.println("тик " + n) ; n--;
} while(n > 0) ; } )
Цикл в этой программе, хотя и технически корректный, можно записать более эффектно следующим образом:
do (
System.out.println("тик " + n); } while(—n > 0);