if( условие )
оператор1;
Да
условие
оператор1
Оператор выбора switch.
switch( выражение ) { |
|
|
|
|
|
|
|
|
|
|
|
case |
значение1: |
|
|
|
|
|
|
|
|
|
|
|
операторы; |
|
|
|
|
|
|
|
|
|
|
case |
break; |
|
|
|
|
|
|
|
|
|
|
значение2: |
|
|
|
|
выражение |
|
|
|
|||
|
операторы; |
|
|
|
|
|
|
|
|
|
|
|
break; |
|
|
Значение1 |
Значение2 |
default |
|||||
// и т.д. |
|
|
|
|
|
|
|
|
|
|
|
default: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
} |
операторы; |
|
|
|
|
|
|
|
|
|
|
|
операторы |
|
операторы |
|
операторы |
|
|||||
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Оператор аналогичен оператору if для нескольких условий выбора. Выражение должно возвращать невещественный результат. После ключевого слова case должны стоять значения того же типа. В случае если значение выражения совпадают с каким-либо значением, стоящим после слова case, выполняется соответствующий блок операторов. Если результат выражения не совпал ни с одним значением, выполняются операторы, стоящие после ключевого слова default. Для выхода из конструкции switch используется оператор break. Использование оператора break не является обязательным, однако, операторы, стоящие внутри конструкции switch будут последовательно выполняться до тех пор, пока не встретится оператор break. В конструкции switch может быть любое количество блоков case, если их значения различаются. Блок default может отсутствовать.
Оператор цикла for.
for( блок инициализации; |
|
|
|
|
|
|
|
условие выполнения тела цикла; |
|
|
|
|
|
|
|
блок изменения счётчиков ) |
|
|
Блок инициализации |
|
|
||
оператор; |
|
|
|
|
|
|
|
|
|
|
условие |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|||
|
|
|
Да |
|
|||
|
|
|
оператор |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Изменение счётчиков |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В блок инициализации помещаются операторы, задающие начальные значения для счётчиков цикла, одновременно в этом блоке могут быть объявлены переменные, используемые в цикле в качестве счётчиков. Область видимости этих переменных ограничивается телом цикла. В качестве условия выполнения тела цикла используется условие, необходимое для продвижения по циклу. Условие, обратное этому, будет означать прекращение выполнения цикла. На каждом шаге цикла выполняется оператор, указанный в теле цикла. После выполнения тела цикла выполняется блок изменения счётчиков.
Примеры:
Следующий цикл выводит в стандартный поток вывода целые числа от нуля до 10.
for(int i = 0; i <= 10; i++) { System.out.println(i);
}
Следующий цикл выводит в стандартный поток вывода чётные числа от 12 до 2 в порядке убывания.
for(int i = 12; i > 0; i -= 2) { System.out.println(i);
}
Цикл с предусловием while.
while( условие )
оператор;
условие |
Да |
оператор |
Оператор выполняется до тех пор, пока условие сохраняет значение true. Если значение условия изначально ложно, цикл не выполняется ни разу.
Цикл с постусловием do-while.
do
оператор; while( условие )
оператор
условие |
Да |
Оператор выполняется до тех пор, пока условие истинно. Если условие принимает значение false, выполнение цикла прекращается. При этом оператор выполняется перед проверкой условия, поэтому, если условие изначально ложно, оператор выполнится один раз.
Операторы прерывания.
•continue – прерывание выполнение тела цикла и переход к следующей итерации.
•break – выход из текущего цикла или оператора switch.
•return – выход из текущей функции. Если функция возвращает какое-либо значение, после оператора return должно быть указано это значение.
•System.exit(int n) – выход из программы с кодом завершения n. Выход считается нормальным, если n равно 0. В противном случае выход считается аварийным.
1.6.Консольный ввод-вывод.
Вклассе System определены следующие стандартные потоки вывода:
•System.in – стандартный поток ввода.
•System.out – стандартный поток вывода.
•System.err – стандартный поток вывода сообщений об ошибках.
По умолчанию потоки System.out и System.err выводят данные в одну и ту же консоль, однако пользователь может перенаправить вывод любого из потоков в файл, другой программе или на другую консоль.
Для вывода информации в потоки System.out и System.err используются следующие методы:
•print(<аргумент>) – выводит текстовое представление аргумента в поток вывода.
•println(<аргумент>)– выводит текстовое представление аргумента в поток вывода и переводит курсор на новую строку.
•println() – отправляет в поток вывода символ перевода строки.
•printf(…) – функция полностью аналогична функции printf языка C.
Примеры:
System.out.print(2.65);
System.out.println(a);
System.out.println(“текстовая строка”);
System.err.printf(“Ошибка %d\n”, err_num);
Для ввода данных с текстовой консоли удобно использовать вспомогательные классы
InputStreamReader и BufferedReader. Класс BufferedReader буферизует ввод, позволяя вводить информацию построчно. Если требуется ввести числовые данные, то для преобразования введённого текста к числовому виду можно использовать оболочечные классы.
Примеры:
//создание экземпляра класса BufferedReader на основе
//стандартного потока ввода System.in
BufferedReader in = new BufferedReader(new InputStreamReader( System.in));
// ввод вещественного значения
double a = Double.parseDouble(in.readLine()); // ввод целочисленного значения
int b = Integer.parseInt(in.readLine()); // ввод строки целиком
String c = in.readLine();
