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# немало, но есть и общие черты! Эти операторы делают то же самое, просто записываются по-другому.


 

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

46408. Характеристика військового колективу 138.5 KB
  Хоча психічний склад колективу є соціально обумовленим, але він у багато чому визначається характером і умовами колективної діяльності, віковим і національним складом членів колективу. Тому при аналізі психічного складу колективів можливий і професійний, і віковий, і національний підходи...
46409. Доказательство и доказывание в гражданском процессе 118.5 KB
  Представители по гражданскому делу, или защитники по уголовному делу, делу об административном правонарушении, или медиаторы - об обстоятельствах, которые стали им известны в связи с исполнением обязанностей представителя, защитника или медиатора...
46410. Розмір речення та ідіостиль 36.21 KB
  Підготувала студентка 2го курсу ФІФ Група 2338 н Бреніч Наталія Розмір речення та ідіостиль Ця доповідь присвячена висвітленню теми Розмір речення та ідіостиль Поліни Ігорівни Климової. Обьектом статті є речення в свою чергу предметом є розмір речення та поняття іліостиль. Адмоні даючи детальну характеристику особливостям побудови речення в творах цього письменника наголошував на тому що у фразі Томаса Манна наявний процес пошуку істини це проявляється. Цією статтею робимо спробу дослідити недостатньо вивчений аспект ідіостиля...
46411. Аналіз умов та факторів виходу на зовнішній ринок українських літакобудівних підприємств 1.41 MB
  Цю стратегію переважно використовують невеликі авіакомпанії які мають невеликий парк літаків або взагалі орендують літаки. Але частка нових літаків в повітряному парку світу залишилась нижче рекордних показників зафіксованих в 1991 та 1999 роках. Прогноз оновлення парку літаків у світі Підтримка промисловості здійснюється урядами в різних формах: від істотної суттєвої частки долі у фінансуванні наукових досліджень до прямого субсидування виробництва і державного страхування експорту. На сьогоднішній день Boeing та irbus постачають на...
46412. Статус Рахункової Палати в Україні: українське законодавство, зарубіжний досвід та шляхи удосконалення 254 KB
  Нижче розглянуто основні віхи становлення Рахункової палати як органу фінансового контролю її завдання повноваження та проблеми діяльності на сучасному етапі зарубіжний досвід правового регулювання статусу аналогічних органів в окремих зарубіжних державах. На основі проведеного дослідження розроблено пропозиції щодо можливих шляхів удосконалення правового регулювання діяльності Рахункової палати в Україні. Денис КОВРИЖЕНКОексперт Лабораторії законодавчих ініціатив Основні етапи інституціоналізації Рахункової палати У 1992 році з ініціативи...
46413. Педагогічні особливості культури офіцера. Військово-педагогічні процеси 112 KB
  Сформувати у курсантів навички пошуку узагальнення критичного аналізу навча1льного матеріалу вміння висувати і захищати свої погляди з питань що розглядаються; Формувати у курсантів риси необхідні військовому керівнику для професійної діяльності; Формувати світогляд курсантів спираючись на національні історичні та військовопатріотичні традиції загальнолюдські цінності; Сприяти розвитку у курсантів почуття свідомої військової дисципліни відповідальності і цілеспрямованості.
46416. Надійність машин і устаткування 1.13 MB
  Причини утворення і розвитку несправностей деталей машин Практично будьяка несправність є наслідком зміни механічних властивостей матеріалу конструктивних розмірів деталей і стану їхньої поверхні. У свою чергу зміна механічних властивостей відбувається внаслідок зміни складу і структури матеріалу деталей. До конструктивних факторів відносяться фактори що були враховані на стадії проектування: конструктивне виконання деталей і складальних одиниць форма величина зазорів і натягів у спряженнях шорсткість і твердість поверхонь і т.;...