МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів
Контакти
Тлумачний словник Авто Автоматизація Архітектура Астрономія Аудит Біологія Будівництво Бухгалтерія Винахідництво Виробництво Військова справа Генетика Географія Геологія Господарство Держава Дім Екологія Економетрика Економіка Електроніка Журналістика та ЗМІ Зв'язок Іноземні мови Інформатика Історія Комп'ютери Креслення Кулінарія Культура Лексикологія Література Логіка Маркетинг Математика Машинобудування Медицина Менеджмент Метали і Зварювання Механіка Мистецтво Музика Населення Освіта Охорона безпеки життя Охорона Праці Педагогіка Політика Право Програмування Промисловість Психологія Радіо Регилия Соціологія Спорт Стандартизація Технології Торгівля Туризм Фізика Фізіологія Філософія Фінанси Хімія Юриспунденкция |
|
|||||||
Принципи ініціалізації зміннихНеправильна ініціалізація змінних є одним з найбільших джерел помилок в програмах. При неправильній ініціалізації проблеми пояснюються тим, що змінна може мати не те початкове значення, яке очікує програміст. Це може статись з однієї з причин: · Змінній не було присвоєно значення. Відповідно, вона має те випадкове значення, яке знаходилось у відповідних комірках пам’яті при запуску програми. · Значення змінної застаріло. Колись змінній було присвоєно значення, але воно втратило актуальність. · Одним частинам змінної були присвоєні значення, а іншим ні. Для правильної ініціалізації рекомендовано дотримувати наступних основних принципів. 1) Ініціалізуйте кожну змінну при її оголошенні. Ініціалізація змінних при їх оголошенні – проста методика захисного програмування і хороша страховка від помилок ініціалізації. 2) Ініціалізуйте кожну змінну там, де вона використовується вперше. Visual Basic та деякі інші мови не дозволяють ініціалізувати змінну при її оголошенні. В результаті, код може набувати вигляду, коли змінні спочатку оголошуються, а потім ініціалізуються, і це відбувається далеко від місця першого використання даних змінних. Приклад поганої ініціалізації змінних (Visual basic) ' оголошення всіх змінних Dim accountIndex As Integer Dim total As Double Dim done As Boolean ' ініціалізація всіх змінних accountIndex = 0 total =0.0 done = False ... ' використання змінної accountIndex ... ' використання змінної total ... ' використання змінної done While Not done ...
Краще ініціалізувати кожну змінну ближче до місця її першого використання:
Dim accountIndex As Integer accountIndex = 0 ' використання змінної accountIndex ... Dim total As Double total = 0.0
'використання змінної total ... Dim done As Boolean done = False ' використання змінної done ... While Not done
Другий варіант кращий за перший з декількох причин. Поки виконання першого прикладу дійде до фрагменту, де використовується змінна done, її значення може бути змінено. Навіть якщо при написанні програми це не так, не можна гарантувати, що це не відбудеться в майбутньому при зміні програми. Крім того, в першому прикладі всі змінні ініціалізуються в одному місці, через що складається враження, що всі вони використовуються впродовж всього методу, тоді як насправді змінна done використовується тільки в його кінці. Нарешті, в результаті внесення змін в програму, що дуже навіть може статись, код, що використовує змінну done, може опинитись в циклі, що вимагатиме ініціалізації змінної заново кожного разу. Бачимо, що перший приклад слабше захищений від помилок, ніж другий. Ці два фрагменти ілюструють принцип близькості: групуйте пов’язані дії разом. Цей принцип стосується також близькості коментарів до коду, що вони описують, близькість коду налаштування циклу до самого циклу тощо. 3) В ідеальному випадку потрібно оголошувати та ініціалізовувати змінну безпосередньо перед першим зверненням до неї. Не всі мови це дозволяють. 4) По мірі можливості потрібно оголошувати змінні як final чи const. 5) Потрібно приділяти особливу увагу лічильникам та акумуляторам. Змінні i, j, k, sum, total часто грають роль лічильників чи акумуляторів. Нерідко програмісти забувають задати нульове значення лічильнику чи акумулятору перед його черговим використанням. 6) Потрібно ініціалізувати поля класу в його конструкторі. 7) Потрібно уважно слідкувати за повідомленнями компілятора – він попереджає про не ініціалізовані змінні.
Читайте також:
|
||||||||
|