Студопедия

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

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • End Select. Логика работы Select Case абсолютно такая же, как и у блочного If






    End Sub

    Логика работы Select Case абсолютно такая же, как и у блочного If. В процессе исполнения оператора компьютер сравнивает значение переменной Otmetka по очереди со всеми значениями, перечисленными в вариантах. Наткнувшись на совпадающее значение, он выполняет операторы, стоящие в этом варианте. На этом исполнение оператора Select Case завершается. Если же совпадающего значения так и не нашлось, то выполняются операторы, стоящие в варианте Else (в нашей программе он полезен на тот случай, если ученик болен манией величия и вводит число 6).

     

    Оператор Select Case предоставляет более широкие возможности, чем в только что рассмотренном примере. Проиллюстрируем их на другом примере:

    Private Sub Command1_Click()

    a = 3

    Select Case a * a + 1

    Case 8, 4 * a, 26

    k = 0

    Print k

    Print a

    Case 7, 10, 84 To 90

    k = 1

    Print k

    Case Is < 0, 2, 4, 12 To 18 + a, 44, 68, Is > 100 + a

    k = 3

    End Select

    End Sub

    Эта программа напечатает 1. Здесь мы видим несколько новых для нас элементов:

    Во-первых, после слов Select Case стоит не переменная, а выражение, поэтому с перечисленными в вариантах значениями будет сравниваться число 10, полученное как 3*3+1. В качестве значений вариантов тоже могут быть выражения, как, например, у нас - 4 * a.

    Во-вторых, здесь у нас в двух вариантах не по одному, а по нескольку выполняющихся операторов.

    В-третьих - конструкция 84 To 90. Она обозначает то же, что и 84, 85, 86, 87, 88, 89, 90, и служит в нашем случае для сокращения записи.

    В-четвертых - конструкция Is< 0. Слово Is служит заменителем выражения a*a+1 и тоже используется для сокращения. Таким образом, Select Case не только сравнивает значения на равенство, но и проверяет неравенства.

    В-пятых, здесь отсутствует вариант Else. Это значит, что если бы в нашей программе мы вместо a=3 написали a=0, то оператор Select Case, не найдя совпадения, не выбрал бы ни один из своих вариантов и, не найдя также Else, завершил бы свою работу, так ничего и не сделав.

     

    Чем платим за удобство Select Case по сравнению с If? Что может If такого, чего не может Select Case? Самое главное - условия в If могут быть совершенно произвольны, а в Select Case мы привязаны к a*a+1.

     

    Вот синтаксис оператора Select Case:

    Select Case проверяемое выражение

    [Case значение, значение ……

    [ операторы

    операторы

    ……………... ]]

    [Case значение, значение ……

    [ операторы

    операторы

    ……………... ]]

    …………………….……………….

    [Case Else

    [ операторы

    операторы

    ……………... ]]

    End Select

     

    Здесь значение - это:

    - выражение

    - выражение To выражение

    - Is знак сравнения выражение

     

    Выражения могут быть не только числовые, но и строковые. Пример:

    Private Sub Command1_Click()

    a = " Дом"

    Select Case a

    Case " Домик"

    k = 3

    Print a

    Case " Дом"

    k = 0

    Print k

    End Select

    End Sub

    Здесь будет напечатан 0.

     

    Задание 30: Ученик вводит с клавиатуры букву русского алфавита. Компьютер должен сказать, какой звук обозначает это буква - гласный, согласный звонкий, согласный глухой или какой-нибудь другой (можно и НЕ ЗНАЮ).

    Задание 31: Если у вас есть микрофон и вы можете записывать свой голос в файл, то попробуйте усовершенствовать ваш диалог с компьютером из 4.9. Пусть компьютер подает вам реплики голосом. Для этого вам заранее придется записать на диск некоторое количество звуковых файлов с репликами компьютера и при помощи оператора Select Case выбирать между ними в зависимости от реплики человека с клавиатуры. Вы сразу же заметите, что компьютер поглупел, но зато стал изъясняться вслух.






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.