Опубликован: 31.08.2006 | Доступ: свободный | Студентов: 3975 / 230 | Оценка: 4.14 / 3.89 | Длительность: 39:16:00
ISBN: 978-5-9570-0021-3
Лекция 7:

Использование условных структур

Условные структуры If ... Then

Условные выражения, используемые в специальных блоках операторов, называемых условными структурами (структурами выбора), управляют исполнением других операторов вашей программы, и последовательностью их исполнения. Для вычисления в программе условия и выбора направления действий в зависимости от результата этого вычисления используется структура выбора If...Then. В самой простой форме структура выбора If...Then записывается в одну строку:

If условие Then оператор

где "условие" - это условное выражение, а "оператор" - это любой оператор программы Visual Basic. Например,

If Score >= 20 Then Label1.Text = "Вы выиграли!"

является условной структурой If...Then, которая использует условное выражение

Score >= 20

для определения того, должна ли программа установить свойство Text объекта Label1 на значение "Вы выиграли!". Если переменная Score содержит значение, которое больше или равно 20, то Visual Basic устанавливает свойство Text ; в противном случае он пропускает выражение присвоения и исполняет следующую строку кода процедуры события. Этот вид сравнения всегда дает в результате значение True или False. Условное выражение никогда не дает в результате значения "может быть".

Проверка нескольких условий в структуре выбора If ... Then

Visual Basic также поддерживает структуру выбора If...Then, которая позволяет включать в нее несколько условных выражений. Этот блок операторов может быть длиной в несколько строк и содержать ключевые слова ElseIf, Else и End If.

If  условие1  Then
операторы, исполняемые, если условие1 равно True
ElseIf  условие2  Then
операторы, исполняемые, если условие2 равно True
[Здесь могут быть добавлены дополнительные блоки ElseIf и операторы]
Else
операторы, исполняемые, если ни одно из условий не равно True
End If

В этой структуре сначала вычисляется условие1. Если это условное выражение равно True, то выполняется блок операторов, расположенный непосредственно за ним. (В него вы можете включить один или несколько операторов программы.) Если первое условие не равно True, то проверяется второе условное выражение ( условие2 ). Если второе условие равно True, то выполняется второй блок операторов. Если ни одно из условий не равно True, то выполняются операторы, следующие за ключевым словом Else. Вся структура завершается ключевыми словами End If.

Следующий код показывает, как можно использовать многострочную структуру If...Then для определения количества налоговых сборов в гипотетической налоговой декларации. Суммы доходов и процентные ставки для единообразия взяты из американского налогового реестра за 2001 год.

Dim AdjustedIncome, TaxDue As Double
AdjustedIncome = 32000

If AdjustedIncome <= 27050 Then '15% ставка налога
TaxDue = AdjustedIncome * 0.15
ElseIf AdjustedIncome <= 65550 Then '28% ставка налога
TaxDue = 4057.5 + ((AdjustedIncome - 27050) * 0.28)
ElseIf AdjustedIncome <= 136750 Then '31% ставка налога
TaxDue = 14837.5 + ((AdjustedIncome - 65550) * 0.31)
ElseIf AdjustedIncome <= 297350 Then '36% ставка налога
TaxDue = 36909.5 + ((AdjustedIncome - 136750) * 0.36)
Else '39.6% ставка налога
TaxDue = 94725.5 + ((AdjustedIncome - 297350) * 0.396)
End If

Важно! Порядок условных выражений в конструкции If...Then и ElseIf критически важен. Что было бы, если бы вы изменили порядок условных выражений в примере вычисления налогов, и перечислили бы ставки, начиная с самой большой? Налогоплательщики из групп, платящих 15%, 28% и 31% попали бы в группу 36% ставки, так как они все имели бы доход, который меньше или равен 297 350. (Visual Basic останавливается на первом условном выражении, которое равно True, даже если остальные также равны True.) Так как все условные выражения в этом примере проверяют значение одной и той же переменной, то, чтобы налогоплательщики попали в правильные группы, они должны быть приведены в порядке возрастания. Мораль: когда вы используете более одного условного выражения, тщательно обдумайте их порядок.

Эта структура выбора на первом и последующих уровнях налогообложения проверяет переменную с двойной точностью AdjustedIncome до тех пор, пока одно из условных выражений не окажется равным True, а затем определяет сумму налогов данного налогоплательщика. С небольшими видоизменениями она может быть использована для вычисления налогов любого налогоплательщика, платящего налоги по прогрессивной шкале налогов, такой, какая применяется в Соединенных Штатах. Полагая, что это полный список налоговых ставок, что он не устарел, и что значение в переменной AdjustedIncome корректно, эта программа даст правильную сумму подлежащих уплате в 2001 году налогов для любого американского налогоплательщика. Если ставки налогов изменятся, то нет ничего проще, чем изменить эти условные выражения. С помощью использования дополнительной структуры выбора, определяющей статус налогоплательщика, программа может быть легко расширена на всех американских налогоплательщиков. В следующем упражнении вы будете использовать структуру выбора If...Then для проверки пользователей при их регистрации в программе. Используя такую же программную логику, вы можете написать сетевое приложение, которое включает проверку пользователей.

Сайдахмад Зарипов
Сайдахмад Зарипов
Жанболат Шаймерден
Жанболат Шаймерден

Можно ли выбирать язык для надписей и команд в среде разработки?