|
Программирование >> Программирование с использованием ajax
Приведенный выше код является вполне допустимым, а вот попытка использовать такой код: const int intTwo; intTwo = 2; обязательно приведет к появлению ошибки и невозможности его компиляции. То же самое произойдет и при попытке изменить значение константной переменной каким-либо образом после того, как ей было присвоено первоначальное значение. В следующем практическом занятии демонстрируется применение оператора switch для вывода в окне консоли различных строк в зависимости значения, вводимого пользователем для проверочной строки. Практическое занятие Применение оператора switch 1. Создайте новое консольное приложение с именем Ch04Ex03 и сохраните его в каталоге С:\BegVCSharp\Chapter04. 2. Добавьте в файл Program, cs следующий код: static void Main(string[] args) { const string myName = karli ; const string sexyName = angelina ; const string sillyName = ploppy ; string names-Console.WriteLine ( What IS your name? ); Как вас зовут? name = Console.ReadLine(); switch (name.ToLower0) { case myName: Console .WriteLine ( You have the same name as me! ); 11 У вас такое же имя, как и у меня! break; case sexyName: Console.WriteLine( My, what a sexy name you have! ); Забавное у вас имя! break; case SillyName: Console.WriteLine( That s a very silly name. ); Это очень глупое имя. break; Console.WriteLine( Hello {0}! , name); Приветствие Console.ReadKey(); 3. Запустите это приложение и введите какое-нибудь имя, когда появится соответствующее приглашение (рис. 4.3). Рш. 4.3. Приложение Ch04Ex03 в действии Описание полученных результатов в приведенном коде выполняются следующие действия: создаются три константных переменных строкового типа, считывается вводимая пользователем строка и на ее основании выводится на консоль определенный текст. Здесь строкой, которую вводит пользователь, является его имя. Перед сравнением введенного пользователем имени (в переменной name) со значениями существующих константных переменных, сначала оно принудительно преобразуется в нижний регистр с помощью метода name.ToLower (). Этот метод является стандартной командой, которая работает со всеми строковыми переменными и оказывается очень кстати, когда нет уверенности в том, каким именно образом пользователь ввел имя. Благодаря ей, строки Karli, kArLi, karli и все остальные подобные варианты все равно будут считаться совпадающими с проверочной строкой karli. Сам оператор switch пытается отыскать для введенной строки совпадение среди значений определенных константных переменных, и если это удается, происходит вывод на консоль персонализированного приветственного сообщения для пользователя, а если нет, на консоль выводится универсальное общее приветствие. Операторы switch не имеют никаких ограничений касательно того, какое количество разделов case они могут содержать, поэтому приведенный код можно расширить и так, чтобы он включал другие возможные имена, хотя это, конечно, потребует определенного времени на реализацию. Организация циклов Организация циклов подразумевает повторяющееся выполнение операторов. Эта методика является очень полезной, поскольку позволяет делать так, чтобы необходимые операции выполнялись повторно столько, сколько требуется раз, без повторного написания одного и того же кода снова и снова. В качестве простого примера рассмотрим следующий код, предназначенный для вычисления количества денег на банковском счету по прошествии 10 лет при условии ежегодной выплаты процентной ставки и отсутствия снятий и поступлений средств на счет: double balance = 1000; double interestRate = 1.05; годовая ставка 5% balance *= interestRate; balance *= interestRate; balance *= interestRate; balance *= interestRate; balance *= interestRate; balance *= interestRate; balance *= interestRate; balance *= interestRate; balance *= interestRate; balance *= interestRate; Написание одной и той же строки 10 раз уже выглядит как неэффективная трата времени, а что если захочется заменить срок в 10 лет каким-нибудь другим значением? Тогда придется вручную копировать эту строку кода требуемое число раз, что весьма утомительно. К счастью, поступать подобным образом вовсе необязательно. Вместо этого можно создать цикл, выполняющий необходимую инструкцию нужное количество раз. Существует еще один важный тип циклов, позволяющий делать так, чтобы цикл выполнялся до тех пор, пока не будет удовлетворено определенное условие. Такие циклы выглядят немного проще, чем те, что требуется создавать для описанной выше ситуации (хотя и не менее полезны), поэтому давайте с них и начнем. Циклы do Циклы do функционируют следующим образом. Сначала выполняется код, предназначенный для прогона в цикле, затем производится булевская проверка, и если в ее результате возвращается true, данный код выполняется снова, и так повторяется до тех пор, пока после проверки не будет возвращено значение false, после чего цикл завершается. Структура цикла do выглядит, как показано ниже, и подразумевает, что выражение <проверка> должно возвращать одно из булевских значений: do { <код, подлежащий выполнению в цикле> } while (<проверка>) ; Символ точки с запятой после оператора while является обязательным. Например, для вывода чисел от 1 до 10 в столбик можно было бы использовать такой цикл do: int i = 1; Console.WriteLine( {0}i++); } while (i <= 10); Здесь используется постфиксная версия операции ++ для увеличения значения i на 1 после его вывода на экран, что требует выполнения проверки условия i <= 10 для включения числа 10 в состав выводимых на консоль чисел. В следующем практическом занятии эта операция тоже используется для демонстрации применения циклов do на примере слегка измененной версии приводившегося ранее кода для вычисления баланса на счету по прошествии 10 лет, а в частности - для вычисления количества лет, которое потребуется для накопления на счету определенной суммы денег, на основании суммы имеющихся на счету средств и процентной ставки. Пра1ггнч>1ж)езанят11б{ Применение циклов do 1. Создайте новое консольное приложение по имени Ch04Ex04 и сохраните его в каталоге С: \BegVCSharp\Chapter04. 2. Добавьте в файл Program, cs следующий код: static void Main(string[] args) { double balance, interestRate, targetBalance; Console.WriteLine ( What is your current balance? ); Каков текущий баланс? balance = Convert.ToDouble(Console.ReadLine ()); Console.WriteLine( What is your current annual interest rate (in %)? ); Какова ежегодная ставка (в процентах)? interestRate = 1 + Convert.ToDouble(Console.ReadLine()) / 100.0; Console.WriteLine( What balance would you like to have? ); Какой баланс необходимо получить? targetBalance = Convert.ToDouble(Console.ReadLine()); int totalYears = 0; do { balance *= interestRate; ++totalYears;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |