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


 

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

45364. Проблема целей и содержания воспитания. Культурологический подход к воспитанию и обучению 45.5 KB
  Проблема целей и содержания воспитания. Понятие воспитания Цели воспитания Культурологический подход к воспитанию и обучению Содержание воспитания 1. Понятие воспитания Воспитание – это деятельность воспитателей по созданию условий для культурного становления и саморазвития личности иначе – деятельность педагога по организации жизни ребёнка на уровне культуры. Цели воспитания Цель воспитания – идеал к которому стремится общество и отдельный воспитатель.
45365. Проблемное обучение. Использование методов проблемного обучения в информатике 36.5 KB
  Использование методов проблемного обучения в информатике. План Технология проблемного обучения Проблемная ситуация Проблемное изложение Частичнопоисковая Исследовательская деятельность Приемы создания проблемных ситуаций Преимущества и недостатки проблемного обучения Использование методов проблемного обучения в информатике 1. Технология проблемного обучения предполагает организацию под руководством учителя самостоятельной поисковой деятельности учащихся по решению учебных проблем в ходе которых у школьников формируются новые...
45366. Познавательный интерес. Его формирование и развитие. Активизация познавательного интереса при обучении информатике 37.5 KB
  Познавательный интерес. Активизация познавательного интереса при обучении информатике. Понятие познавательного интереса Формирование познавательных интересов в обучении.
45367. Методы обучения. Их многообразие и классификация. Специфичность методов обучения информатике 62 KB
  Методы обучения. Методы по логике передачи и восприятия учебной информации индуктивные дедуктивные 3. Методы стимулирования интереса 3. Методы стимулирования и активации долга и ответственности 3.
45368. Индивидуализация и дифференциация обучения. Формы и методы индивидуализации и дифференциации 24 KB
  Модели дифференциации: Модель потоков. Продвинутые средние низкие потоки Модель гибкого состава класса. Некоторые пары вместе Модель разнородных классов. Всё время разные дети на один предмет Интерактивная модель.
45369. Воспитательная система. Многообразие воспитательных систем 60.5 KB
  Многообразие воспитательных систем План Сущность воспитательной системы. Структура воспитательной системы. Этап становления Отработка содержания деятельности и структуры системы Завершающий Обновление и совершенствование системы Разнообразие воспитательных систем 4. Сущность воспитательной системы Воспитательная система – это упорядоченная совокупность компонентов взаимодействие и интеграция которых определяет наличие у школы способностей целенаправленно и эффективно содействовать развитию личности ребенка.
45370. Системы развивающего обучения 47.5 KB
  Системы развивающего обучения План Понятие и сущность развивающего обучения ЗАР ЗБР принципы структура Дидактическая система Л. Зонкова цель принципы методы формы результат Теория содержательного обучения и дидактическая система Эльконина и Давыдова цели требования к процессу обучения. Формы уроков методы результат Теория поэтапного формирования умственных действий Гальперина Талызиной цели 6 этапов Понятие и сущность развивающего обучения С 30г. В России начинается разработка дидактических систем развивающего...
45371. Сущность процесса обучения: его противоречия, функции, этапы 53.5 KB
  Сущность процесса обучения: его противоречия функции этапы. План Сущность обучения Особенности процесса обучения Закономерности процесса обучения Принципы процесса обучения общие спеуифические Противоречия процесса обучения перечисление противоречий задачи для их преодоления Функции обучения Образовательная Воспитательная Развивающая Этапы процесса обучения Живое созерцание Абстрактное мышление Практика Двусторонний характер обучения Процесс преподавания Процесс учения 1. Сущность обучения – то что...
45372. Многообразие форм организации обучения в школе. Психолого-педагогические требования к современному уроку 52.5 KB
  Многообразие форм организации обучения в школе. План Формы организации обучения. Критерии выбора форм организации обучения. Общие формы обучения Фронтальная форма Групповая Парная Индивидуальная.