Страница 20 из 502
<b> Console.WriteLine("Норма прибыли: " + rate_of_return);</b>
<b> Console.WriteLine("В течение " + years + " лет");</b>
<b> for(i =0; i < years; i++)</b>
<b> amount = amount + (amount * rate_of_return);</b>
<b> Console.WriteLine("Будущая стоимость равна $" + amount);</b>
<b> }</b>
<b>}</b>
Вот как выглядит результат выполнения этой программы.
<b>Первоначальные капиталовложения: $1000 </b>
<b>Норма прибыли: 0.07 </b>
<b>В течение 10 лет</b>
<b>Будущая стоимость равна $1967.151357289565322490000</b>
Обратите внимание на то, что результат выполнения приведенной выше программы представлен с точностью до целого ряда десятичных разрядов, т.е. с явным избытком по сравнению с тем, что обычно требуется! Далее в этой главе будет показано, как подобный результат приводится к более "привлекательному" виду.
Символы
В C# символы представлены не 8-разрядным кодом, как во многих других языках программирования, например C++, а 16-разрядным кодом, который называется уникодом (Unicode). В уникоде набор символов представлен настолько широко, что он охватывает символы практически из всех естественных языков на свете. Если для многих естественных языков, в том числе английского, французского и немецкого, характерны относительно небольшие алфавиты, то в ряде других языков, например китайском, употребляются довольно обширные наборы символов, которые нельзя представить 8-разрядным кодом. Для преодоления этого ограничения в C# определен тип char, представляющий 16-разрядные значения без знака в пределах от 0 до 65 535. При этом стандартный набор символов в 8-разрядном коде ASCII является подмножеством уникода в пределах от 0 до 127. Следовательно, символы в коде ASCII по-прежнему остаются действительными в С#.
Для того чтобы присвоить значение символьной переменной, достаточно заключить это значение (т.е. символ) в одинарные кавычки. Так, в приведенном ниже фрагменте кода переменной ch присваивается символ X.
<b>char ch; </b>
<b>ch = 'X';</b>
Значение типа char можно вывести на экран с помощью метода WriteLine(). Например, в следующей строке кода на экран выводится значение переменной ch.
<b>Console'.WriteLine ("Значение ch равно: " + ch) ;</b>
Несмотря на то что тип char определен в C# как целочисленный, его не следует путать со всеми остальными целочисленными типами. Дело в том, что в C# отсутствует автоматическое преобразование символьных значений в целочисленные и обратно. Например, следующий фрагмент кода содержит ошибку.
<b>char ch;</b>
<b>ch = 88; // ошибка, не выйдет</b>
Ошибочность приведенного выше фрагмента кода объясняется тем, что 88 — это целое значение, которое не преобразуется автоматически в символьное. При попытке скомпилировать данный фрагмент кода будет выдано соответствующее сообщение об ошибке. Для того чтобы операция присваивания целого значения символьной переменной оказалась допустимой, необходимо осуществить приведение типа, о котором речь пойдет далее в этой главе.
Логический тип данных
Тип bool представляет два логических значения: "истина" и "ложь". Эти логические значения обозначаются в C# зарезервированными словами true и false соответственно. Следовательно, переменная или выражение типа bool будет принимать одно из этих логических значений. Кроме того, в C# не определено взаимное преобразование логических и целых значений. Например, 1 не преобразуется в значение true, а 0 — в значение false.
В приведенном ниже примере программы демонстрируется применение типа bool.
<b>// Продемонстрировать применение типа bool.</b>
<b>using System;</b>
<b>class BoolDemo {</b>
<b> static void Main() { </b>
<b> bool b; </b>
<b> b = false;</b>
<b> Console.WriteLine("b равно " + b); </b>
<b> b = true;</b>
<b> Console.WriteLine("b равно " + b);</b>
<b> // Логическое значение может управлять оператором if. </b>
<b> if(b) Console.WriteLine("Выполняется.");</b>
<b> b = false;</b>
<b> if(b) Console.WriteLine("He выполняется.");</b>
<b> // Результатом выполнения оператора отношения </b>
<b> // является логическое значение.</b>
<b> Console.WriteLine("10 > 9 равно " + (10 > 9));</b>
<b> }</b>
<b>}</b>
Эта программа дает следующий результат.
<b>b равно False </b>
<b>b равно True </b>
<b>Выполняется.</b>
<b>10 > 9 равно True</b>
В приведенной выше программе обнаруживаются три интересные особенности. Во-первых, при выводе логического значения тийа bool с помощью метода WriteLine() на экране появляется значение 'True" или "False". Во-вторых, самого значения переменной типа bool достаточно для управления оператором if. Для этого не нужно, например, записывать оператор if следующим образом.