|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Константи
VB .NET дозволяє
створювати іменовані константи
для значень, що
залишаються постійними впродовж всієї
роботи програми. Константи
оголошуються по аналогії із
змінними, а їх імена підкоряються
тим же правилам: до 255 символів,
починаються з букви, після якої
слідує довільна комбінація
букв, цифр і символів підкреслення.
У книзі імена констант
записуються прописними буквами. У VB .NET при
активізації жорсткої перевірки типів
необхідно явно указувати тип
констант: Const PIE = 3.14159 ' Не компілюватиметься з Option Strict Const PIE As Double
= 3.14159 ' Правильно, але Math.PI краще :-) Значення констант
може визначатися числовими
виразами, у тому числі і
що містять раніше певні
константи: Const Pie_over_2 As
Double = PIE / 2 Аналогічним
чином визначаються строкові
константи: Const User_name As
String = "Bill Gates" .NET Framework містить
немило вбудованих, заздалегідь
визначених глобальних констант,
які ви можете використовувати
в своїх програмах. Багато
хто з них аналогічний
константам Vb6 з префіксом vb, але вони
є членами різних класів,
тому звернення до них виглядають
трохи інакше. Наприклад,
константа vbcrlf в VB .NET належить
класу Controlchars, тому при
зверненні до неї використовується
запис Control Chars. Crlf.
У VB .NET, як
практично у всіх мовах
програмування, існують цикли
— конструкції, що
дозволяють виконувати операції
задана кількість разів або продовжувати,
поки виконується (або навпаки,
не виконується) деяка
логічна умова. В порівнянні з
колишніми версіями VB синтаксис циклів
мало змінився. Зокрема, змінилася
конструкція While/wend, але це зміна
на кращий.
Цикл, що
виконується задана кількість
разів, визначається за допомогою
ключових слів For і Next. Наприклад,
наступна програма виводить в
консольному вікні числа від 1 до 10: Sub Main() Dim i As
Integer For i =
1 To 10 Console.WriteLine(i) Next
1 Console.ReadLine() End
Sub Зазвичай
змінній-лічильнику привласнюється
початкове значення, після чого
перевіряється, чи не перевищує
поточне значення лічильника кінцеве.
Якщо лічильник перевищив кінцеве
значення, тіло циклу не виконується.
Якщо поточне значення менше
кінцевого, VB .NET виконує
подальші команди до тих пір,
поки не зустріне ключове слово Next (указувати
ім'я змінної в команді Next
необов'язково). За умовчанням
лічильник збільшується на 1, і все
починається наново. Процес
продовжується до тих пір, поки при
черговій перевірці не опиниться, що
лічильник перевищив кінцеве значення.
У цей момент цикл завершується, і
управління передається наступній за
ним команді. Одиничний
приріст лічильника, використовуваний
за умовчанням, іноді неудобно—в
деяких ситуаціях лічильник повинен
змінюватися на 2, на дробову величину
або у зворотному напрямі. Як і у
всіх колишніх версіях VB,
нестандартний приріст
указується в циклі For-next з ключовим
словом Step. Наступна
програма імітує зворотний
відлік перед запуском космічного
корабля: Sub Main() Dim i As
Integer For i =
10 To 1 Step =1 Console.WriteLine("It's
t minus " & i & " and counting.") Next
i Console.WriteLine("Blastoff!") Console. Readline() End Sub
При негативному прирості
тіло циклу For-next ігнорується в
тому випадку, якщо початкове
значення лічильника менше кінцевого.
Це дуже зручно при виконанні
таких операцій, як видалення елементів
із списку. Якби відлік вівся від 0 до
Listcount, то на середині відбулося б
звернення до видаленого елементу,
тоді як при відліку від Listcount до 0 з
кроком -1 елементи нормально
віддаляються від останнього до першого. Значення Step може відноситися до будь-якого числового типу. Приклад: for
yearlylnterest =
.07 То .09 Step .00125d Цикл перебирає
значення від 7 до 9 відсотків з
приростом в 1/8 відсотка. Звернете
увагу на використання типу Decimal
для запобігання помилкам
округлення. VB .NET, як і
колишні версії VB, дозволяє
створювати вкладені цикли
практично необмеженої
глибини. Наступний фрагмент
виводить таблицю множення з
простим форматуванням: Sub Main() Dim i, j As Integer For j =
2 To 12 For i =
2 To 12 Console.Writed * j & " ") Next
i Console. Writeline() Next
j Console Readline() End
Sub У внутрішньому
циклі замість методу Writeline
використовується метод Write, щоб
уникнути перекладу рядка при
виведенні сусідніх елементів.
Досить часто
умова продовження циклу залежить
від результатів, отриманих в тілі
циклу. Наступна конструкція
використовується в VB .NET для побудови
циклу з невизначеною умовою,
тіло якої виконується мінімум
один раз (завершуюча перевірка): Do ' Команди VB
.NET (0 і більш) Until
условіє_виполняєтся Звичайно,
умова не обмежується простою
перевіркою рівності. У вашому
розпорядженні оператори порівняння,
перераховані в табл.3.10. Таблиця 3.10.
Оператори порівняння
Строкові операнди за
умовчанням порівнюються відповідно до порядку
символів Unicode. Таким чином,
«А» передує «В», але
«В» передує «а» (а
пропуск передує будь-якому
друкарському символу). Рядок «abcd»
передує рядку «CDE» (тобто вважається «менше»
її), оскільки прописні букви в
кодуванні стоять раніше рядкових. Ключове слово
Unti 1 можна замінити ключовим словом
Whi I e (при цьому слід замінити
умову на протилежне).
Наприклад, фрагмент Do ' Команди VB .NET (0 і більш) Loop Until X
<> String.Empty еквівалентний
наступному фрагменту: Do ' Команди VB .NET (0 і більш) Loop
While X =
String.Empty
Звернете увагу на
використання константи String.Empty замість
порожнього рядка "", що менш
наочною і частіше приводить до
помилок. Якщо перемістити ключове слово Whi
1е або Unti 1 в секцію Do,
перевірка виконуватиметься на початку циклу (і
за помилкової умови цикл не
буде виконаний жодного разу). Приклад: Do While Text1.Text <> String.Empty '
Обробити непорожній текст Loop Умови об'єднуються за допомогою операторів Or, Not і And. Приклад: Do While count <
20 And savings < 1000000
Умовні команди і ухвалення рішень
" У VB .NET
умовна команда If, як і в Vb6,
існує в двох версіях —
однорядковою і багаторядковою: If X < 0 Then Console.WriteLine("Number
must be positive!")
Умова конструкції If-then може
містити логічних операторів And, Or і
Not. Досить часто програма
виконує різні дії залежно від
того, чи виявиться умова істинною
або помилковою. В цьому випадку базова
форма команди If-then: If умова
Then ' Команди VB
.NET (0 і більш) End If доповнюється
однією або декількома секціями El se: If умова
Then ' Команди VB
.NET (0 і більш) Else ' Команди VB .NET (0 і більш) End If Декілька
послідовних перевірок в
секціях Else можна оформити у вигляді
конструкції Elself: If умова
Then ' Команди Elself
умова Then ' Команди Elself
умова Then ' Команди Else ' Команди End
If
Зона видимості змінних і методів в
VB .NET визначається по
складніших правилах, ніж в колишніх версіях
VB. Ця тема детально описана в розділах
4 і 5. Зокрема, зміни
виявляються при оголошенні
змінних в тілі циклу або блоку If-then.
Такі змінні невидимі за
межами блоку, в якому вони були
оголошені. Наприклад, в наступному
фрагменті ми вибираємо одну з двох
версій строкової змінної Ri sk і
потім намагаємося використовувати її: If income <
100000 Then Dim risk
As String = "too much risk" Else Dim risk
As String = "love to make а deal" End
If Console.WriteLine("Your
risk level is " & Risk) На
екрані
з'являється повідомлення про помилку: The name 'risk' is
not declared. Видимість обох
версій змінної risk
обмежується блоком, в якому
вони були оголошені! Мораль: не
оголошуйте змінні усередині
блоків, якщо для цього немає вагомих
причин.
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||