Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 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 нельзя использовать строковые константы.

Date: 2015-07-25; view: 328; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию