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


 

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

41160. Морфологические и синтаксические нормы русского литературного языка 79 KB
  Морфологические ошибки связаны с нарушением грамматических форм слов незнанием склонений с неправильным употреблением окончаний с неправильным ударением если это влияет на форму слова. Морфологостилистические ошибки связаны с использованием сложных конструкций характерных для официально делового и научного стиля в разговорном стиле.Синтаксические ошибки синтаксическим ошибкам относятся следующие: Нарушения в управлении.
41161. Методы преобразования комплексного чертежа (эпюра Монжа) 286 KB
  Сущность этого метода заключается в следующем: положение точек линий плоских фигур поверхностей в пространстве не изменяется а система П1 П2 заменяется дополняется плоскостями образующими с П1 или П2 или между собой системы двух взаимно перпендикулярных плоскостей принимаемых за плоскости проекций. Если введение одной плоскости П4 или П5 не позволяет решить задачу то прибегают к последовательному дополнению основной системы плоскостей проекций новыми П6 П7 и т. показано преобразование проекций точки А из системы П2 П1 в систему П4...
41162. История лазерных принтеров 1.9 MB
  На поверхности фоторецептора создается электростатическое а затем видимое изображение копируемого оригинала с последующим переносом этого изображения на бумагу или специальный материал. Формирование изображения На этапе формирования изображения на поверхности фоторецептора создается оптическое изображение оригинала. Полученное оптическое изображение должно: а обладать требуемыми геометрическими параметрами б иметь распределение освещенностей соответствующее оптическим плотностям оригинала. Проявление На этапе проявления на участки...
41163. Метод узловых напряжений 192.5 KB
  Метод узловых напряжений. Метод узловых напряжений заключается в определении на основании первого закона Кирхгофа потенциалов в узлах электрической цепи относительного некоторого базисного узла. Положительное напряжение узловых напряжений указывается стрелкой от рассматриваемого узла к базисному. Иллюстрация к методу узловых напряжений.
41164. Власть, влияние, лидерство 198 KB
  Они делают это посредством допущения подчиненных к выработке управленческих решений развитию лидерства в рабочих командах инициативы обучения и т. Лидерство Вопросы лидерства вызывали интерес людей с древних времен. Природа лидерства может быть лучше понята если сравнить лидерство с управлением. Теория лидерских качеств Это один из наиболее ранних подходов к изучению и объяснению лидерства.
41165. Человек в организации. Функция мотивации 242.5 KB
  Системно поведение человека в организации может быть представлено с двух позиций: 1 с позиции взаимодействия человека с организационным окружением в этом случае человек находится в центре модели и 2 с позиции организации включающей в себя индивидов в этом случае организация как целое является исходной точкой рассмотрения. Второе – что он сделал для организационного окружения для организации в ответ на стимулирующие воздействия которые организация применила по отношению к человеку. Нас будут интересовать ответы на вопросы: как...
41166. РАСПРЕДЕЛЕНИЕ В СИСТЕМЕ МАРКЕТИНГА 898 KB
  Основные журналы по изучению распределения и маркетинга: 1. Цели политики распределения. Особенности оптовой торговли как канала распределения. Проблема относительно времени и места продажи товара рассматривается в маркетинге как политика распределения.
41167. Теплообменные аппараты 688 KB
  По истечении определенного промежутка времени осуществляется переключение потоков теплоносителей. Регенераторы выполняются исключительно для газовых теплоносителей. В зависимости от взаимного направления движения теплоносителей различают такие схемы движения теплоносителей: а прямоточная схема прямоток когда горячий и холодный теплоноситель движутся вдоль поверхности теплообмена в одном направлении б противоточная схема противоток когда горячий и холодный теплоноситель движутся вдоль поверхности теплообмена в противоположных...
41168. Функциональные стили русского языка и стилистическая дифференциация лексики 48 KB
  В зависимости от цели и темы высказывания говорящий или пишущий выбирает из лексической системы русского языка нужные ему слова. Например в официальноделовом документе и в письме близкому вам человеку на одну и ту же тему будут использованы разные слова:Дорогой Ванечка Уважаемый товарищ ИвановПодобное явление обусловлено так называемым функциональностилевым расслоением русской лексики. Функцию общения выполняют как правило слова разговорного стиля в его устной форме проявления; функцию сообщения и воздействия – слова одного из книжных...