
- •Глава 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. Управляющие операторы 109
if(k > 100) с = d; // этот if else а = с; // связан с этим else } else а = d; // этот else относится к if(i == 10)
Как указывают комментарии, заключительный else не связан с if (j < 20), потому что он не в одном с ним блоке (хотя это и самый близкий if без
else). Последний else СВЯЗаН С if(i == 10). Внутренний else ОТНОСИТСЯ
к if (k> loo), потому что это самый близкий if в пределах данного блока.
Многозвенный if-else-if
Общую программную конструкцию, которая основана на последовательности вложенных if, называют многозвенным (ladder) if-else-if. Эта конструкция выглядит примерно так:
if(conditionl)
statement!; else if(condition^)
statements; else if(condition^)
statements;
else
statement^;
Операторы if выполняются сверху вниз. Как только одно из условий, управляющих оператором if, становится true, оператор, связанный с этим if, выполняется, а остальная часть многозвенной схемы пропускается. Если ни одно из условий не true, то будет выполнен последний оператор else. Заключительный else действует как условие по умолчанию: если все другие условные проверки не успешны, то выполняется последний оператор else. Если последний else отсутствует и все другие условия — false, то никакого действия выполняться не будет.
Программа, использующая многозвенный if-else-if для определения времени года, в котором находится указанный (в переменной month) месяц:
// Демонстрирует операторы if-else-if. class IfElse {
public static void main(String args[]) {
int.month =4; // Апрель
String season;
if(month ==12 || month == 1 || month == 2) season = "Зима";
110 Часть I. Язык Java
else if(month = 3 || month == 4 || month == 5)
season = "Весна"; else if(month == 6 I| month == 7 || month = 8}
season = "Лето"; else if(month = 9 |I month ==10 || month == 11)
season = "Осень"; else
season = "Непонятный месяц";
System.out.printIn("Апрель это " + season + "."); } } .
Пример вывода этой программой:
Апрель это Весна.
Независимо от того, какое значение вы задаете для переменной month, в многозвенной схеме будет выполняться один и только один оператор присваивания.
Оператор switch
Оператор switch — это Java-оператор множественного ветвления. Он переключает выполнение на различные части кода программы, основываясь на значении выражения, и часто обеспечивает лучшую альтернативу, чем длинный ряд операторов if-eise-if. Общая форма оператора switch:
switch (expression) { •case valuel:
// последовательность операторов! break; case values:
// последовательность операторов2 break;
case valueN:
// последовательность операторовЫ
break; default:
// последовательность операторов по умолчанию )
Здесь expression ДОЛЖНО иметь ТИП byte, short, int ИЛИ char; каждое value, указанное в операторах case, должно иметь тип, совместимый с типом
Глава 5, Управляющие операторы 111
выражения. Каждое значение case должно быть уникальной константой (а не переменной). Дублирование значений case недопустимо.
Оператор switch работает следующим образом. Значение выражения сравнивается с каждым из указанных значений в case-операторах. Если соответствие найдено, то выполняется кодовая последовательность, следующая после этого оператора case. Если ни одна из case-констант не соответствует значению выражения, то выполняется оператор default. Однако оператор default необязателен. Если согласующихся case нет, и default не присутствует, то никаких дальнейших действий не выполняется.
Оператор break используется внутри switch, чтобы закончить последовательность операторов. Когда встречается оператор break, выполнение передается к первой строке кода, которая следует за полным оператором switch. Он создает эффект досрочного выхода из switch.
Простой пример, который использует оператор switch:
// Простой пример с оператором switch, class SampleSwitch {
public static void main(String args [] ) { for(int i=0; i<6; i++) switch(i) { case 0:
System.out.println("i равно нулю."); break/case 1:
System.out.println("i равно единице."); break; t case 2:
System.out.println("i равно двум."); break; case 3:
System.out.println("i равно трем."); break; default:
System.out.println("i больше трех."); } } }
Вывод этой программы:
i равно нулю. i равно единице. i равно двум. i равно трем.
112 Часть I. Язык Java
i больше трех. i больше трех.
Не трудно заметить, что на каждом проходе цикла выполняются операторы, связанные с case-меткой, которая соответствует переменной цикла i. Все другие case-ветви обходятся. После того как i становится больше трех, никакого соответствия case-меткам не возникает, поэтому выполняется оператор default.
Оператор break — необязательный. Если он пропускается, выполнение будет продолжено со следующей case-метки. Иногда желательно иметь множественные case-ветви без операторов break между ними. Например, рассмотрим следующую программу:
// switch с пропущенными операторами break, class MissingBreak {
public static void main(String args[]J { for(int i=0; i<12; i++) switch(i) { case 0: case 1: case 2: case 3: case 4:
System.out.println ("i меньше 5"); break; case 5: case 6: case 7: case 8: case 9:
System.out.println("i меньше 10"); break; default:
System.out.println ("i равно 10 или больше"); } } }
Эта программа генерирует следующий вывод:
i меньше 5
i меньше 5
i меньше 5
i меньше 5
i меньше 5
i меньше 10
i меньше 10