- •Вопрос 4. Деревья синтаксического анализа.
- •Генерация дерева синтаксического анализа
- •Вопрос 5. Приоритет операторов. Ассоциативность операторов.
- •Вопрос 6. Расширенная форма Бэкуса-Наура и синтаксические графы.
- •Вопрос 10. Концепция связывания, способы связи переменных с памятью
- •Вопрос 11. Арифметические выражения, порядок вычисления операторов.
- •Вопрос 12. Перегруженные операторы
- •Вопрос 13. Преобразование типов.
- •Вопрос 14. Отношения и булевские выражения. Сокращенные вычисления.
- •Вопрос 15. Операторы присваивания.
- •Вопрос 16.Структура операторов управления. Составной оператор и оператор ветвления (2 варианта).
- •Вложенные операторы ветвления и замыкание операторов ветвления.
- •I. Вложенные операторы ветвления.
- •Многовариантные операторы ветвления.
- •Вопрос 19. Операторы цикла. Циклы со счетчиком. Оператор do в Fortran. Оператор цикла в Pascal, algol 60.
- •Вопрос 21. Логически управляемые циклы.
- •Вопрос 22. Циклы с механизмом управления, размещаемым пользователем.
Многовариантные операторы ветвления.
Многовариантное ветвление - оператор switch
Оператор switch позволяет организовать выбор одного значения из нескольких вариантов:
Scanner in = new Scanner(System.in);
System.out.print("Select an option (1, 2, 3, 4) ");
int choice = in.nextInt();
switch (choice) {
case 1:
...
break;
case 2:
...
break;
case 3:
...
break;
case 4:
...
break;
default:
// неверный выбор
...
break;
}
Выполнение начинается с метки case = choice, и продолжается до ближайшего оператора break или до конца оператора switch. Если ни одна метка не совпадает со значением переменной, выполняется раздел default (если он предусмотрен).
Метка case должна быть целочисленной, строки и вещественные числа проверять нельзя:
String input = ... ;
switch (input) { // ошибка
case "A": // ошибка
...
break;
...
}
Многовариантное ветвление, оператор switch
Конструкция if else может оказаться неудобной, если вы стоите перед необходимостью сделать выбор из нескольких вариантов. Оператор switch обеспечивает ясный способ переключения между различными частями программного кода в зависимости от значения одной переменной или выражения. Общая форма этого оператора такова:
switch ( choice ) {
case значение1:
break;
case значение2:
break;
case значением:
break;
default:
}
Выполнение кода начинается с метки case, соответствующей значению выражения choice, и продолжается до следующего оператора break или конца оператора switch. Если ни одна метка не совпадает со значением переменной, выполняется раздел default, если он предусмотрен.
Заметим, что метка case должна быть целочисленной. Нельзя проверять строки. Все значения case должны быть уникальными литералами. Если в двух операторах case будут одинаковые значения, то транслятор выдаст сообщение об ошибке.
Отметим, что оператор default необязателен. В случае, когда ни один из операторов case не соответствует значению выражения и в switch отсутствует оператор default выполнение программы продолжается с оператора, следующего за оператором switch.
Если case не заканчивается оператором break, то после текущего раздела case будет выполняться следующий. Иногда бывает удобно иметь в операторе switch несколько смежных разделов case, не разделенных оператором break.
Вопрос 19. Операторы цикла. Циклы со счетчиком. Оператор do в Fortran. Оператор цикла в Pascal, algol 60.
Операторы цикла используются для организации многократно повторяющихся вычислений. Любой цикл состоит из тела цикла, то есть тех операторов, которые выполняются несколько раз, начальных установок, модификации параметров цикла и проверки условия продолжения выполнения цикла. Операторы цикла позволяют организовать цикл «явным» образом, что способствует большей оптимизации программного кода.
Циклы со счетчиком используются тогда, когда циклическая часть программы должна повторяться фиксированное число раз. В таких циклах имеется переменная целого типа, которая называется счетчиком цикла.
Конструкция DO управляет повторяющимся выполнением блока операторов или конструкций.
Операторы цикла:
while оператор повтора, с указанием условий повторения до тела цикла. Поэтому операторы в теле цикла не выполнятся ни разу, если условие не истинно.
Так же существует оператор цикла repeat...until; это оператор цикла, с проверкой условия в конце цикла.
Существует ещё один оператор цикла - for.Этот операто цикла со встроенным счётчиком.
Вопрос 20. Оператор цикла в Си, Си++, Java, Ada.
В языке Си, Си++, Java, Ada известны три вида операторов цикла: for, while, do-while
Оператор с предусловием (while)
Он работает следующим образом. Вычисляется значение выражения. Если оно истинно, то выполняется оператор. В противном случае цикл заканчивается.
Цикл с постусловием (do…while)
Иногда возникает необходимость, чтобы тело цикла выполнилось хотя бы один раз, но условие не позволяет этому случится. Вот именно тут нам поможет цикл с постусловие do…while.
Цикл с параметром (for)
Данный цикл можно представить такой конструкцией;
for (начальные_присваивания; выражение; приращение) оператор;
