Программирование >>  Программирование с использованием ajax 

1 ... 22 23 24 [ 25 ] 26 27 28 ... 396


Здесь <проверка> вычисляется для получения булевского значения, а результатом операции в зависимости от этого значения является либо <результат если Тгие>, либо < результат если Еа1зе>.

Применять этот синтаксис можно, например, так:

string resultString = (mylnteger < 10) ? Меньше 10 : Больше или равно 10 ;

Результатом приведенной тернарной операции будет какая-то одна из двух строк, обе из которых могут присваиваться переменной resultString. Выбор того, какая из них должна присваиваться, будет делаться сравнением значения mylnteger с числом 10, при этом в случае, если это значение меньше десяти, присваиваться будет первая строка, а если больше или равно 10 - то вторая. Например, в случае, если значение mylnteger равно 4, resultString будет присвоена строка Меньше 10.

Такая операция вполне подходит для простых присваиваний, подобных показанному, но не совсем удобна для выполнения на основании сравнения более длинных фрагментов кода. Для них больше подходит оператор if.

Оператор if

Оператор if является гораздо более многогранным и удобным средством для принятия решений. В отличие от ?:, оператор if не имеет результата (поэтому использовать его в операциях присваивания нельзя); вместо этого if можно применять для условного выполнения других операторов.

Наиболее простой способ использования оператора if выглядит так, как показано ниже, и подразумевает вычисление выражения <проверка> и выполнение следующей за ним строки кода в случае, если <проверка> возвращает true:

if {<проверка>)

<код, выполняемый, если <проверка> равна true>;

После выполнения этого кода, или невыполнения из-за того, что в результате вычисления выражения <проверка> было получено false, выполнение программы снова возобновляется со следующей строки кода.

Вместе с оператором i f также может указываться и дополнительный код с помощью оператора else. Этот оператор выполняется в случае, если при вычислении выражения <проверка> получается false:

if {<проверка>)

<код, выполняемый, если <проверка> равна true>;

else

<код, выполняемый, если <проверка> равна false>;

Оба раздела кода могут занимать несколько строк и представлять собой заключенные в фигурные скобки блоки:

if {<проверка>)

<код, выполняемый, если <проверка> равна true>; Ise

<код, выполняемый, если <проверка> равна false>;

В качестве быстрого примера можно переписать приведенный в предыдущем разделе код с тернарной операцией:

string resultString = (mylnteger < 10) ? Меньше 10 : Больше или равно 10 ;



Поскольку результат оператора if не может присваиваться переменной, потребуется отдельный шаг:

string resultString; if (mylnteger < 10)

resultString = Меньше 10 ; else

resultString = Больше или равно 10 ;

Код вроде этого хотя и является более многословным, но зато легче поддается прочтению и пониманию, чем тот, в котором используется тернарная операция; кроме того, он также обеспечивает гораздо большую гибкость.

Практическое занятие Применение оператора if

1. Создайте новое консольное приложение по имени Ch04Ex02 и сохраните его в каталоге С:\BegVCSharp\Chapter04.

2. Добавьте в файл Program, cs следующий код:

static void Main(string [ ] args) {

string comparison;

Console.WriteLine( Enter a number: );

Введите число double varl = Convert.ToDouble(Console.ReadLine()); Console.WriteLine( Enter another number: );

Введите еще одно число double var2 = Convert.ToDouble(Console.ReadLineО) ; if (varl < var2)

comparison = less than ;

меньше чем

else {

if (varl == var2)

comparison = equal to ;

равно

else

comparison = greater than ;

больше чем

Console.WriteLine( The first number is {0} the second number. , comparison); вывод результата сравнения чисел

Console.ReadKey(); }

3. Запустите приложение и по приглашению введите два числа, как показано на рис. 4.2.


Рис. 4.2. Приложение Ch04Ex02 в действии



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

Первый раздел приведенного кода выглядит очень знакомо. В нем из вводимых пользователем данных получаются два значения типа double:

string comparison;

Console.WriteLine( Enter a number: );

double varl = Convert.ToDouble(Console.ReadLine());

Console.WriteLine( Enter another number: );

double var2 = Convert.ToDouble(Console.ReadLine());

Далее переменной comparison типа string на основании значений, полученных для varl и var2, присваивается строка. Перед этим, однако, выполняется проверка на предмет того, не является ли значение varl меньше значения var2:

if (varl < var2)

comparison = less than ;

Если нет, это означает, что значение varl либо больше, либо равно значению var2. Это требует добавления внутри первой операции сравнения в рамках раздела else второй операции сравнения:

else {

if (varl == var2)

comparison = equal to ;

Раздел else внутри второй операции сравнения будет достигнут только в случае, если значение varl будет больше значения var2:

else

comparison = greater than ;

И, наконец, напоследок значение переменной value выводится на консоль:

Console.WriteLine ( The first number is {0} the second number. , comparison);

Примененный здесь метод вложения является лишь одним из возможных способов. С точно таким же успехом вместо него можно было бы записать и так:

if (varl < var2)

comparison = less than ; if (varl == var2)

comparison = equal to ; if (varl > var2)

comparison = greater than ;

Недостатком такого подхода является то, что он предусматривает выполнение всех трех операций сравнения, как бы ни выглядели значения varl и var2. Первый же подход предусматривает выполнение только одной операции сравнения, если varl меньше var2, и двух в противном случае (вместе с операцией сравнения varl == var2), что сокращает количество подлежащих выполнению строк кода. Здесь разница в показателях производительности будет незначительной, однако в тех приложениях, где скорость выполнения играет решающую роль, она будет очень серьезной.

Проверка большего количества условий с помощью операторов if

в предыдущем примере в отношении переменной varl выполнялась проверка трех условий, что охватывало все возможные ее значения. Однако иногда может возникать необходимость в выполнении проверки переменной на предмет соответствия каким-то конкретным значениям, например, равна ли varl числу 1, 2, 3 или 4 и т.д.



1 ... 22 23 24 [ 25 ] 26 27 28 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика