17446

Ветвление: полная форма

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа № 7 Ветвление: полная форма 7.1. Вложенные операторы lf...Then Внутрь оператора If_Then можно поместить еще один оператор If_Then. Второй оператор If_Then будет выполняться только если условие в первом выполняется. Второй оператор находится внутри первого. Гово...

Русский

2013-07-01

108.89 KB

2 чел.

Лабораторная работа № 7

Ветвление: полная форма

7.1. Вложенные операторы lf...Then

Внутрь оператора If_Then можно поместить еще один оператор If_Then. Второй оператор If_Then будет выполняться, только если условие в первом выполняется. Второй оператор находится внутри первого. Говорят, что оператор If_Then вложен внутрь другого оператора.

Создайте новое приложение Windows и назовите его «Флажки». Добавьте на форму два флажка и кнопку. Измените значение свойства Text кнопки на Флажки установлены?. Выполните двойной щелчок по кнопке, чтобы отредактировать обработчик ее нажатия. Добавьте в обработчик следующий код:

If CheckBoxl.Checked = True Then

If CheckBox2.Cheeked = True Then

MessageBox.Show(“Оба флажкa установлены”)

End If 

End If

Постройте и запустите приложение. Установите первый флажок и нажмите кнопку с надписью Флажки установлены?. Что произойдет? Ничего. Теперь установите второй флажок и снова нажмите кнопку с надписью Флажки установлены?. На этот раз появится окно с сообщением «Оба флажка установлены.» Как видите, в первой строке кода есть условие:

If CheckBoxl.Checked = True Then

За этим условием идет оператор, который будет выполняться, только если выполняется условие. Это еще один оператор If_Then, вложенный в первый. Во вложенном операторе If_Then есть свое условие:

If CheckBох2.Checked = True Then

В этот оператор вложен следующий:

MessageBox.Show(“Оба флажка установлены.”)

Так что же происходит? Если условие в первом операторе выполняется (флажок CheckBoxl установлен), то выполняется вложенный оператор. Это еще один оператор If...Then. Если условие во втором операторе тоже выполняется (флажок CheckBox2 установлен), выполняется следующий вложенный оператор, и на экран выводится окно сообщения. Оба условия должны выполняться, иначе окно сообщения не будет выводиться. И CheckBox1, и CheckBох2 должны быть установлены.

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

Задания для самостоятельного выполнения

7.1. В системе программирования Visual Basic .NET создать проект «Флажки», описанный в параграфе.

7.2. Противоположные условия

До сих пор действия в условном операторе выполнялись при выполнении условия. Если условие не выполнялось, ничего не происходило. А что, если нам нужно выполнить какие-то действия и в том случае, если условие не выполняется?

Ну, во-первых, можно написать еще один оператор If...Then с противоположным условием и поместить в него нужные строки кода. Давайте попробуем!

Создайте новое приложение Windows и назовите его «IfThenOtherwise». Добавьте на форму два флажка и кнопку. Измените значение свойства Text кнопки на If Then. Поместите в обработчик ее нажатия следующий код:

If CheckBoxl.Checked = True Then

Form.ActiveForm.BackColor = System.Drawing. Color.Red

End If

If CheckBoxl.Checked = False Then

Form.ActiveForm.BackColor = System.Drawing. Color.Blue

End If

Постройте и запустите проект. Нажмите кнопку с надписью If Then. Форма станет синей. Установите флажок CheckBoxl и еще раз нажмите кнопку с надписью If Then. Форма станет красной.

Как работает этот код? В первом операторе If...Then условие проверяет, установлен ли флажок: CheckBoxl .Checked = True. Если условие выполняется, то цвет фона (BackColor) формы изменяется на красный. Второй оператор If...Then содержит условие, проверяющее, сброшен ли флажок: CheckBoxl.Checked = False (противоположное условие). Если это условие выполняется, то цвет фона формы меняется на синий. Да, в коде есть повторения, но он работает! Его недостаток — присутствие двух почти одинаковых операторов. Такой подход отнимает лишнее время и может стать причиной ошибок.

Задания для самостоятельного выполнения

7.2. В системе программирования Visual Basic .NET создать проект «IfThenOtherwise», описанный в параграфе.

7.3. Оператор lf...Then...Else

В языке Visual Basic .NET есть альтернативная возможность, избавляющая от необходимости повторять строки кода и упрощающая его понимание. Эта альтернатива — оператор If...Then...Else. Этот оператор требует только одного условия, но позволяет выбирать, какие операторы выполнять при выполнении условия, а какие — при невыполнении. Оператор If...Then..Else используется вместо двух одинаковых операторов If...Then с противоположными условиями. Вот его синтаксис:

If Условие Then

Последовательность операторов 1

Else

Последовательность операторов 2

End If

Как работает этот код? Сначала проверяется условие. Если оно выполняется, то выполняется Последовательность операторов 1. В противном случае выполняется Последовательность операторов 2.

Создадим программу «If-Then-Else» с помощью оператора If...Then...Else и докажем, что она работает точно так же, как и с двумя отдельными операторами If...Then с противоположными условиями.

Добавьте на форму еще одну кнопку. Измените значение ее свойства Text на If-Then-Else. В обработчик ее нажатия введите следующий код:

If CheckBoxl.Checked = True Then

Form.ActiveForm.BackColor = System. Drawing. Color.Red

Else

Form.ActiveForm.BackColor = System.Drawing. Color.Blue

End If

Постройте и запустите проект. Нажмите кнопку с надписью If Then Else. Форма станет синей. Установите флажок CheckBoxl и еще раз нажмите кнопку с надписью If Then Else. Форма станет красной. Программа делает с помощью одного оператора то же самое, что раньше делала с помощью двух. Код проверяет, выполняется ли условие CheckBoxl .Checked = True. Если да, то выполняется первый оператор и форма становится красной. В противном случае выполняется второй оператор и форма становится синей.

Давайте разберем еще один пример с If...Then... Else. Создадим программу «If-Then-Else-2», поместив в каждую часть оператора If...Then...Else не по одному оператору, а по несколько. В операторе If...Then...Else после If...Then и Else можно размещать сколько угодно строк кода.

Введите код обработчика нажатия кнопки Buttonl:

If CheckBoxl.Checked = True Then

Form.ActiveForm.BackColor = System.Drawing. Color.Red

MessageBox.Show(“I'm red.”)

TextBox1.Text = “I'm red.”

Else

Form.ActiveForm.BackColor = System.Drawing. Color.Blue

MessageBox.Show(“I'm blue.”)

TextBox1.Text = "I’m blue.”

End If

Постройте и запустите проект. Нажмите кнопку с надписью If Then Else, а затем установите флажок CheckBoxl и еще раз нажмите кнопку с надписью If-Then Else.

Задания для самостоятельного выполнения

7.3. В системе программирования Visual Basic .NET создать проект «If-Then-Else», описанный в параграфе.

7.4. В системе программирования Visual Basic .NET создать проект «If-Then-Else-2», описанный в параграфе.

7.4. Пошаговое выполнение If

А теперь воспользуемся отладочными средствами Visual Studio .NET и пошагово выполним код в операторе If...Then...Else. Таким образом, мы сможем увидеть, как он выполняется внутри программы.

Создайте новое приложение Windows и назовите его «Step-In-If». Поместите на форму одну кнопку и один флажок. Установите для свойства Checked флажка значение True. Когда приложение запустится, флажок будет установлен. Выполните двойной щелчок по кнопке, чтобы отредактировать обработчик ее нажатия. Добавьте в обработчик следующий код:

Dim MyValue As Integer

MyValue = 1

If CheckBoxl.Checked = True Then

MyValue = 2

Else

MyValue = 3

End If

1. Установите точку останова в первой строке кода (MyValue = 1), щелкнув правой кнопкой по этой строке и выбрав из контекстного меню пункт Вставить точку останова (Insert Breakpoint).

2. Постройте и запустите проект. Когда откроется форма, нажмите кнопку. Код выполнится до строки с точкой останова.

3. Нажмите клавишу {F11}, чтобы выполнить текущую строку кода MyValue = 1. Подсветится следующая строка.

4. Еще раз нажмите клавишу {F11}, чтобы выполнить строку кода

If CheckBoxl.Checked = True Then Поскольку флажок CheckBoxl установлен, будет подсвечена следующая строка кода — MyValue = 2.

5. Нажмите клавишу {F11}, чтобы выполнить строку кода MyValue = 2. Будет подсвечена строка End If.

6. Нажмите клавишу {F11}, чтобы выполнить строку кода

End If

Будет подсвечена следующая строка.

7. Нажмите клавишу {F11}, чтобы выполнить строку кода

End Sub

Опять появится форма.

8. Сбросьте флажок CheckBoxl и нажмите кнопку. Повторите пошаговое выполнение оператора, нажимая клавишу {F11} и наблюдая, какие строки кода будут подсвечиваться и выполняться. На этот раз выполнится оператор после Else, т. е. строка MyValue = 3.

Вот и все! Теперь вы видели, как выполняется оператор If...Then...Else при работе программы!

Задания для самостоятельного выполнения

7.6. В системе программирования Visual Basic .NET создать проект «Step-In-If». Провести пошаговое выполнение проекта так, как это описано в параграфе.

7.5. Операторы If в C# и J#

В языках C# и J# есть условные операторы, работающие точно так же,. как If...Then и If...Then...Else в языке Visual Basic .NET. Но их синтаксис немного другой. Вот пример из С#:

int MyAge;

MyAge=18;

if (MyAge==18)

{

MessageBox.Show(“I am 18.”);

MessageBox.Show(“I am still 18.”);

}

Сначала мы объявляем целочисленную переменную MуАgе и присваиваем ей начальное значение. Затем мы начинаем условный оператор с ключевого слова if — обратите внимание, что все буквы в нем строчные. За этим словом идет условие МуАgе==18. Условие помещено в скобках. Вы. наверное, обратили внимание на два знака «равно» подряд. В языке C# так обозначается операция сравнения (в Visual Basic .NET она обозначается одним знаком). Операторы, которые должны выполняться при выполнении условия, помещены в фигурные скобки – {   }.

Чтобы код было удобнее читать, некоторые программисты помещают фигурные скобки в отдельных строках. Заметьте, что каждый оператор заканчивается точкой с запятой. Кроме того, ключевое слово Then вообще не используется!

Код на языке J# будет точно таким же, как и на С#.

Давайте разберем оператор If...Then...Else на языке С#. Посмотрите, что есть общего между этими операторами в C# и Visual Basic .NET и чем они отличаются.

int MyAge;

МуАде=18;

if (MyAge==18)

{

MessageBox.Show(“I am 18.”);

MessageBox.Show(“I am still 18.”);

}

else

{

MessageBox.Show(“I am 19.”);

MessageBox.Show(“I am still 16.”);

}

Условие снова помещено в скобки. Заметьте, что на этот раз здесь два блока операторов — один после условия и один после else. Каждый блок помещен в фигурные скобки. Заметьте, что каждый оператор заканчивается точкой с запятой. Ключевое слово Then не используется.

В J# синтаксис оператора If...Then..Else точно такой же, как и в С#.

7.6. Булевы операции и операции сравнения в C# и J#

Вы должны знать еще кое-что о различиях между языком Visual Basic .NET и языками C# и J# при использовании операторов If...Then и If...Then..Else. Во-первых, булевы операции обозначаются по другому. Вместо And, Or и Not, C# и J# используют &&, | | и !:

Булева операция

Visual Basic.NET

С#

J#

И

And

&&

&&

Или

Or

| |

| |

Не

Not

!

!

Ялык С#. Вот пример использования булевых операторов И (&&) и Не (!) в С#:

bool isBilled=true;

bool isLate=false;

bool isDone;

isDone = isBilled && !isLate;

MessageBox.Show(isDone.ToString());

Обратите внимание на ключевые слова bool (тип Boolean), true и false — они все набраны строчными буквами. Переменные isBilled, isLate и isDone объявлены как bool (тип Boolean). Обратите внимание на операцию И (&&) и операцию Не (!) в С#. Поскольку C# и J# не выполняют автоматических преобразований значений различных типов в строковые, используется метод ToString.

Язык J#. Вот такой же код на J#:

boolean isBilled=true;

boolean isLate=false;

boolean isDone;

isDone=isBilled u&& ! JisLate;

MessageBox.Show (System.Convert.ToString (isDone)) ;

Код выглядит почти так же, как код на С#, но есть и некоторые отличия. Обратите внимание на то, как объявляется переменная boolean (тип Boolean). Все переменные — isBilled, isLate и isDone — объявлены как boolean. В коде на J# также по-другому указывается преобразование значения типа Boolean в строку — с помощью метода System.Convert.ToString.

Некоторые операции сравнения в языках C# и J# обозначаются не так, как в Visual Basic .NET. Вы уже видели, что проверка равенства обозначается == вместо =. Кроме того, проверка неравенства в C# и J# обозначается != вместо <>. Вот таблица с обозначениями операций сравнения:

Операция сравнения

Visual Basic.NET

С#

J#

Равно

=

==

==

Больше чем

>

>

>

Меньше чем

<

<

<

Больше или равно

>=

>=

>=

Меньше или равно

<=

<=

<=

Не равно

<>

!=

!=

Посмотрите на код на языках J# или С#, который использует оператор сравнения «не равно»:

int MyAge;

MуАgе=18;

if (MyAge!=l9)

{

MessageBox.Show(“I am not 19.”);

}

Когда выполняется этот код, выводится окно с сообщением «I am not 19.».

Как видите, различий между операторами If...Then и If...Then...Else в Visual Basic .NET и C# или J# немало, но есть и общие черты! Эти операторы делают то же самое, просто записываются по-другому.


 

А также другие работы, которые могут Вас заинтересовать

30212. МУНИЦИПАЛЬНЫЙ СЕКТОР В СТРУКТУРЕ НАЦИОНАЛЬНОГО ХОЗЯЙСТВА 1.65 MB
  Муниципальный сектор формируется как структурное подразделение национального хозяйства — единого комплекса взаимосвязей производства, распределения, обмена и потребления. Национальное хозяйство обеспечивает производственное, социальное и духовное развитие общества с учетом исторических, геополитических условий
30213. Проектирование системы видеомониторинга 2.65 MB
  Целью проекта является проектирование системы видеомониторинга с использованием сети провайдера которая позволяет: 1 Распознавать автомобильные номера; 2 Распознавать транспортные средства по следующим типам: легковые грузовые автобусы мотоциклы; 3 Сохранять в архиве снимки транспортных средств и распознанных ГРЗ по каждому идентифицированному транспортному средству; 4 Осуществлять мониторинг дорожной обстановки в режиме реального времени; 5 Отслеживать осуществлять видео и фотофиксацию различных типов нарушений ПДД: движение по...
30214. Исследование новых безуглеродистых коррозионностойких сталей на Fe-Cr-Ni основе с некоторым варьированием дополнительных легирующих элементов, обладающих высокой технологичностью и пластичностью, позволяющей проводить ИПД и сокращать число смягчающих отжи 5.11 MB
  Хром является основным легирующим элементом коррозионно-стойких сталей. Его содержание находится в пределах от 11 до 30 %. С ростом содержания хрома коррозионная стойкость стали растет. Легирование стали хромом приводит к уменьшению склонности аустенитного зерна к росту при нагреве, существенному увеличению ее прокаливаемости, а также к замедлению процесса распада мартенсита
30215. Криминологическая характеристика террористического акта 394 KB
  Состояние и тенденции развития терроризма и террористического акта20082012 год 3. В России в конце XX начале XXI века опасность терроризма как действий направленных на массовые убийства взрывы или поджоги с целью воздействовать на принятие решений органами власти резко возросла. Опасность современного терроризма обусловлена реальной угрозой не только для внутренней но и внешней безопасности государства. № 153ФЗ О внесении изменений в отдельные законодательные акты Российской Федерации в связи с принятием...
30216. Психологические особенности, располагающие личность при расторжении брака к девиациям 531.5 KB
  Он позволяет достаточно глубоко проанализировать и выявить основные психологические закономерности процесса деятельности структуру личности систему правовых норм и характер их взаимодействия а также дать точное описание этого взаимодействия с учетом всех участвующих элементов и выделить его значимые свойства.1 В этой связи актуальность нашей темы состоит в необходимости изучения самого феномена развода а также особенностей личности которые раполагают к девиациям. В юридической психологии представляется весьма продуктивным исследование...
30217. Развитие конституционного права по законодательству Великого Княжества Литовского 313 KB
  Развитие государства и права феодальной Беларуси. Развитие конституционного права Беларуси в привилейный период развития законодательства. Развитие конституционного права Беларуси в статутный период развития законодательства.
30218. Разработка рекомендаций по совершенствованию стратегии продвижения продукции собственного производства ООО «Гастроном» 2.1 MB
  В первой главе рассматриваются теоретические аспекты продвижения товара. Продвижение товара любая форма сообщений используемых фирмой для информации убеждения или напоминания людям о своих товарах услугах образах идеях общественной деятельности и их влияния на общество[1С. Если же говорить в целом то можно сказать что продвижение товара на рынке это совокупность мер усилий действий предпринимаемых производителями продавцами товара посредниками в целях повышения спроса увеличения сбыта расширения занимаемого рыночного...
30219. ВАЗ 2109 – “Девятка” 1.76 MB
  К тормозной системе автомобиля предъявляются высокие требования. Стояночная тормозная система выполняет также функцию аварийной тормозной системы в случае выхода из строя рабочей тормозной системы. Каждая тормозная система состоит из тормозных механизмов которые обеспечивают затормаживание колес или вал трансмиссий и тормозного привода приводящего в действие тормозной механизм. Тормозной механизм может быть колесный трансмиссионный барабанный и дисковый.
30220. Клопы (HEMIPTERA) лесопарковых территорий г. Бийска 4 MB
  Целенаправленных исследований по изучению фауны и экологии Полужесткокрылых в городе Бийске не проводилось. В литературе имеются отрывочные данные, которые содержат лишь краткие сведения о распространении видов. Основной целью данной работы является: изучение фауны и экологии отряда Hemiptera городских скверов Бийска и по литературным данным морфологии, физиологии, эмбриологии его представителей.