
- •Глава 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. Управляющие операторы 123
for(a=l, b=4; a<b; a++, b—) { System.out.println("a = " + a); System.out.println("b = " + b) ; } } >
В этом примере инициализационная часть устанавливает значения как для а, так и для ь. Два разделенных запятыми оператора в итерационной части выполняются каждый раз, когда цикл повторяется. Программа генерирует следующий вывод:
а = 1
b = 4
а = 2
Ь = 3
Если вы знакомы с C/C++, то знаете, что на этих языках запятая — это оператор, который можно использовать в любом правильном выражении. В Java, однако, дело обстоит не так. В Java запятая — это разделитель, который применяется только в цикле for.
Некоторые разновидности цикла for
Цикл for поддерживает ряд разновидностей, которые усиливают его гибкость и расширяют применимость. Причина такой гибкости заключается в том, что три части его заголовка — инициализация, проверка условия и итерация — могут использоваться не только для внутренних целей. На самом деле эти три части цикла for можно применять для решения любой задачи. Рассмотрим некоторые примеры.
Одна из наиболее общих разновидностей включает условное выражение. Это выражение не нуждается в сравнении переменной управления циклом с некоторым значением. На самом деле, условие, управляющее циклом for, может быть любым булевским выражением. Например, рассмотрим следующий фрагмент:
boolean done = false/-
for (int 1=1; Idone; i++) {
// ...
if ( interrupted () ) done = true; }
В этом примере цикл for продолжает выполняться до тех пор, пока booiean-переменная done имеет значение true. Он не проверяет значения 1.
124 ' . Часть I. Язык Java
Другая интересная разновидность цикла for — когда инициализационное или итерационное выражение (или оба) могут отсутствовать, как показано в следующей программе:
// Части цикла for могут быть пустыми, class ForVar {
public static void main(String argsf]) { int i ; boolean done = false;
i = 0;
for(; !done;) {
System.out.println("i равно " + i) ; if(i == 10) done = true; i++; } } }
Здесь инициализационное и итерационное выражения были удалены из for, так что эти части for пусты. В данном примере это не имеет никакого значения и может рассматриваться просто как ограниченный стиль программирования. Однако могут возникнуть ситуации, когда такой подход оправдан. Например, если начальное условие устанавливается через сложное выражение в другом месте программы или управляющая переменная цикла изменяется непоследовательным способом, определяемым действиями, происходящими в теле цикла, то удобнее оставить эти части заголовка цикла for пустыми.
Еще одна разновидность цикла for — можно преднамеренно создать бесконечный цикл (цикл, который никогда не заканчивается), если оставить все три части заголовка for-цикла пустыми. Например:
for(;;) {
// . . . • '
}
Этот цикл будет выполняться всегда, потому что нет условия, при котором он завершится. Хотя существуют некоторые программы, такие как командные процессоры операционных систем, требующие бесконечного цикла, большинство "бесконечных циклов" в действительности является просто циклами со специальными требованиями завершения. Как вы вскоре увидите, существует способ завершить цикл — даже бесконечный (подобный показанному выше), который не использует нормальное условное выражение цикла.