Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Оператор выбораЛабораторная работа 7 Следующая разновидность оператора, которую нам надо изучить, называется «оператор выбора». Он предназначен для той же цели, что и условный оператор — для выполнения одного из фрагментов программы в зависимости от некоторых условий. Он поддерживает условия весьма специального вида, но может анализировать большое количество таких условий в одном операторе. Оператор выбора анализирует значение целочисленного выражения и позволяет задавать последовательности операторов, выполняемых в случае различных конкретных значений этого выражения. Также можно задавать последовательность операторов, выполняемую в том случае, если значение выражения не совпадает ни с одним из явно предложенных вариантов. Синтаксис (форма записи) оператора выбора следующий: switch(выражение) { тело } Тело по структуре похоже на содержимое обычного составного оператора; оно также представляет собой последовательность операторов, но в нем между операторами присутствуют специальные конструкции вида case число:, а также не более одной конструкции default:. В конструкциях case допустимы только константы целого типа; в них нельзя использовать переменные. Работает оператор выбора следующим образом: сначала вычисляется выражение, и ищется конструкция case с константой, равной значению выражения. Если такая есть, выполняются операторы из тела, начиная с оператора, следующего за найденной конструкцией case. Если такой нет, но есть конструкция default, выполнение начинается со следующего за ней оператора. Наконец, если подходящего варианта case и конструкции default нет, оператор выбора ничего не делает. К сожалению, в одном варианте case можно указывать только одно конкретное значение; нельзя указать несколько значений через запятую или указать диапазон значений, т. е. указать начальное и конечное значения, имея в виду также все значения, расположенные между ними. Если какая-то последовательность операторов должна выполняться при нескольких разных значениях выражения, единственный вариант — поставить перед ней несколько конструкций case. Оператор выбора в языке Java, как и в С++, имеет одну особенность — конструкции case определяют только место начала выполнения операторов из тела оператора выбора. При этом операторы выполняются до тех пор, пока либо не кончится тело, либо не встретится оператор break; (специальный оператор, используемый для того, чтобы досрочно прекращать выполнение определенных управляющих конструкций, в число которых попал и оператор выбора). Попадающиеся при этом «по дороге» конструкции case и default просто игнорируются, поэтому если разные варианты должны быть взаимоисключающими, не нужно забывать ставить оператор break; перед конструкциями case. Пример. Упростим при помощи оператора выбора программу из предыдущей лабораторной работы про оценки (по целому числу — параметру командной строки нужно напечатать словесное представление оценки). Текст метода «main» приведен ниже: public static void main(String[] args) { switch(Integer.parselnt(args[0])) { case 5: System.out.println("excellent"); break; case 4: System.out.println("good"); break; case 3: System.out.println("satisfactory"); break; case 2: System.out.println("unsatisfactory"); break; case 1: System.out.println("bad"); break; default:System.out.println("Unrecognized mark."); } Важным частным случаем целочисленных выражений являются символьные. Для ввода и анализа символьных данных необходимо работать со строками. Завести переменную типа строка и заполнить ее строкой, введенной с клавиатуры, можно, написав следующее: String str = S.next(); где S — переменная типа Scanner. Получить теперь символ такой строки с заданным номером можно, написав str.charAt(номер-1). Чтобы проанализировать первый символ строки str при помощи оператора выбора, нужно написать switch(str.charAt(0)) { case 'А': операторы_варианта_А case 'В': операторы_варианта_В
default: операторы_по_умолчанию } Естественно, символьные константы под case могут быть любыми; приведенные здесь 'А' и 'В' взяты только для примера. Аналогично, чтобы проанализировать второй символ строки str, нужно заменить в выражении под switch индекс 0 на 1, и т. д. Увы, анализировать строки целиком оператор выбора не умеет, т. е. выражение под switch не может иметь результат типа строка, равно как и под case нельзя использовать строковые константы.
|