Информационый портал Windows 7

У нас вы можете скачать драйвера и программы, найти красивые темы и обои, учебные материалы, а также получить консультации и многое другое.

  • главная
  • контакты
  • карта сайта
 
Программирование » Уроки по C# для начинающих »

Урок 3. Использование условий для программирования в языке С#.

 
     Итак, мы продолжаем писать нашу учебную программу.

     Для обработки различных условий в языке С# присутствуют два выражения: «if» и «switch».

     Для начала расскажу, о них подробнее.


Выражение типа «if».


     Это простое условие. Записывается так:
If(<условие>) <действие>


     Если нам мало одиночного условия, можно записать его в виде:
If(<условие>)<действие1>else<действие2>


     Если и этого для нас мало, можно записать по-другому:
If(<условие1>)<действие1>else
     If(<условие2>)<действие2>else<действие3>


     Причём, таких связок типа if-else-if… может быть очень много, что бывает полезно в сложных программах.

     Если нужно, можно использовать символы «||»(или), «&&»(и) для связи разных условий:
If((<условие1> || <условие2>) && <условие3>)


     Подробнее о специальных символах и их назначении можно прочитать здесь.

     Данная запись означает, что должно выполнится одно из условий (условие1 или условие2) и обязательно – условие3.


Выражение типа «switch»


     Надо сказать, что «switch» - более простая форма для множества условий, чем if-else-if…

     Записывается это так:
switch(<имя переменной>)
{
     case <1-е значение переменной>:{<действие1>}break;
     case <2-е значение переменной>:{<действие2>}break;
     …
     default:{<действие, происходящее если ни одно из предыдущих условий не было выполнено>}break;
}


     Обращаю внимание, что командные скобки «{…}» лучше всё-таки ставить. Это избавит вас от проблем с внутренними переменными (переменные, существующие только внутри этой области).

     И ещё: значение переменной в после «case» должно быть константой, иначе компилятор выдаст ошибку:
switch(i)
{
     case 1:{ i=3; }break;
     case j+1:{ i=4; }break;   //Здесь компилятор выдаст ошибку
     …
     default:{ i=5; }break;
}



А теперь обратимся к практике.

     Для начала добавим в функцию, обрабатывающую нажатие клавиш, дополнительное условие (рис. 3.1).

Урок 3. Использование условий для программирования в языке С#.


Рис. 3.1. Меняем функцию consoleKeyDown.


     Я специально записал это условие именно через оператор swich. Здесь хорошо видно, что если мы хотим записать несколько условий, при выполнении одного из которых должен выполняться один и тот же код, нам придётся два раза переписывать одно и то же действие, что очень неудобно.

     Но в данном случае этот вариант вполне подходит, поскольку потом можно будет изменить код, выполняемый при нажатии клавиши Enter независимо от второго условия (в данном случае – нажатие клавиши Space - пробел).

     Здесь мы видим уже знакомую нам функцию ConsoleKeyEnter, которую я немного изменил для этого урока (рис. 3.2).

Урок 3. Использование условий для программирования в языке С#.

Рис. 3.2. Изменённая функция ConsoleKeyEnter.


     Здесь мы видим, что при значении нулевого элемента массива arrstrConsoleVvod_Gpr[0] равном «консоль», вызывается некая функция ConsoleKeyEnter_Console, в которую передаётся строковая переменная, в которой содержится введённая пользователем команда.

     Естественно, что данный массив должен быть определён как глобальная переменная:
private string[] arrstrConsoleVvod_Gpr = {"","",""};//Эта переменная указывает, какая спец. команда была введена


     Но если текущее значение целевой переменной не найдено (например, arrstrConsoleVvod_Gpr[0]==”фиг вам”), в дело вступает другое условие:
if (strKeys == "консоль" || strKeys == "_К")
{
     arrstrConsoleVvod_Gpr[0] = "консоль";
     textBoxConsole.Text = "Изменение параметров консоли" + NewLine;
     ConsoleKeyEnter_Console();
}
else { ConsoleKeyEnter_Glavnaya(strKeys); }


     То есть если пользователь ввёл команду «консоль» или «», то следующая команда будет являться командой изменения параметров консоли, о чём мы и сообщаем пользователю. Заодно, выводим список возможных команд функцией ConsoleKeyEnter_Console() (рис. 3.3).

Урок 3. Использование условий для программирования в языке С#.

Рис. 3.3. Функция ConsoleKeyEnter_Console().


     Функция ConsoleKeyEnter_Console() реализует вывод элементов массива arrsrtVoprosConsole_Gpr, в котором заданы команды изменения параметров консоли:
private string[] arrsrtVoprosConsole_Gpr = { "вопрос", "выход", "цвет" }; //Здесь хранится список команд для изменения параметров консоли


     Обращаю ваше внимание, что функции ConsoleKeyEnter_Console() и ConsoleKeyEnter_Console(strKeys) совершенно различны. Компилятор сам выберет нужную по количеству (или типу) переменных в скобках (рис. 3.5). Подробнее об этом можно прочитать здесь. Но эту функцию мы раберём позднее.

     А теперь вернёмся к рис. 3.2.

     Если пользователь не ввёл ключевого слова, управление передаётся функции ConsoleKeyEnter_Glavnaya(strKeys), которая обрабатывает прочие команды (рис. 3.4).

Урок 3. Использование условий для программирования в языке С#.

Рис. 3.4. Функция ConsoleKeyEnter_Glavnaya.


     Я записал её в таком виде, чтобы показать, что этот способ не очень удобен для таких случаев, особенно когда приходится писать много исполняемого кода.

     Но эту функцию мы уже разбирали в прошлом уроке.

     А теперь разберём функцию ConsoleKeyEnter_Console(strKeys) (рис. 3.5).

Урок 3. Использование условий для программирования в языке С#.

Рис. 3.5. Функция ConsoleKeyEnter_Console(strKeys).


     Здесь у меня получилось удачно соединить разные типы условий.

     К тому же здесь используется новый для нас способ присвоения значения переменным:
arrstrConsoleVvod_Gpr[0] = arrstrConsoleVvod_Gpr[1] = "";


     При этом элементам массива arrstrConsoleVvod_Gpr[0] и arrstrConsoleVvod_Gpr[1] будет присвоено одно и то же значение (“” – пустая строка).

     Здесь есть новая для нас функция: ConsoleKeyEnter_Console_zvet (рис. 3.6).

Урок 3. Использование условий для программирования в языке С#.

Рис. 3.6. Функция ConsoleKeyEnter_Console_zvet.


     Здесь нет ничего принципиально нового, кроме пары стандартных функций:

     Convert. – используется для перевода данных из одного типа в другой.

     В данном случае мне нужно перевести текст, написанный пользователем, в значения типа int16:
Convert.ToInt16(<текст>)


     Далее мы меняем цвет текста элемента (textBoxConsole.ForeColor) на тот, который пользователь записал в формате ARGB (альфа, красный, зелёный, синий).

     Для этого используем стандартную функцию Color. – используется для задания цвета:
textBoxConsole.ForeColor = Color.FromArgb(arriZvet[0],arriZvet[1],arriZvet[2],arriZvet[3]);


     Осталось разобрать ещё одну функцию: ConsoleAutoCompleteSource. Мы используем её для авто заполнения строки, в которой пользователь вводит команды, в зависимости от того, какие команды уже были введены (рис. 3.7).

Урок 3. Использование условий для программирования в языке С#.

Рис. 3.7. Функция ConsoleAutoCompleteSource.


     Здесь я реализовал многоступенчатый выбор при помощи вложенных операторов switch.

     Естественно, для начала мне пришлось задать массивы, в которых храняться данные для авто заполнения:
private string[] arrsrtVopros_Gpr = { "вопрос", "выход", "консоль" }; //Здесь хранится список команд
private string[] arrsrtVoprosConsole_Gpr = { "вопрос", "выход", "цвет" }; //Здесь хранится список команд для изменения параметров консоли
private string[] arrsrtVoprosConsoleZvet_Gpr = { "вопрос", "выход", "текста" }; //Здесь хранится список команд для изменения цвета консоли


     Разберём, как работает эта функция.

     Сначала мы очищаем ресурсы авто заполнения:
textBoxConsoleMain.AutoCompleteCustomSource.Clear();


     Затем заполняем их тем, что нужно при текущих условиях:
textBoxConsoleMain.AutoCompleteCustomSource.AddRange(<массив текстовых данных>);


     Теперь можно запустить программу и проверить, как это работает (рис. 3.8).

Урок 3. Использование условий для программирования в языке С#.

Рис. 3.8. Результат работы программы.


     Для удобства я задал цвет (0,255,0,0), что соответствует красному. Мы видим, что цвет текста изменился на красный.

    Скачать исходники можно здесь:Вы не можете скачивать файлы с нашего сервера.





     Жду отзывов и предложений


     К списку статей          Предыдущий урок          Следующий урок



     DiamondTigeR

     
Урок 3. Использование условий для программирования в языке С#.



Автор: d.tiger. Дата: 8-01-2012, 13:46

Просмотров: 6993

В избранное:

Уважаемый посетитель, для доступа к ресурсам сайта OS-7.RU, а также для скачивания материалов - Вам необходимо зарегистрироваться либо войти под своим именем.







 (голосов: 0)
Комментарии (1) Распечатать