Оператор If в мові програмування C |
Написав admin | |||||
Субота, 28 липня 2012 20:43 Переглядів: 21411
|
|||||
Можливість контролювати виконання вашої програми, дозволяючи їй приймати рішення про те, який код слід виконувати є дуже цінним для програміста. Конструкція If дозволяє контролювати чи слід програмі виконувати певну частину коду чи ні в залежності від того якою є дана умова — істинною або хибною. Однією з важливих властивостей конструкції If є те, що вона дозволяє програмі вибрати певну дію, ґрунтуючись на введені користувачем дані . Наприклад, за допомогою If можна перевіряти введеня користувачем паролю, програма може вирішити, чи має користувач доступ до програми. Без умовних операторів, таких як If, програми будуть працювати майже однаково кожен раз, завжди дотримуючись тієї ж послідовності викликів функцій. If дозволить виконувати програму по різному, що приведе до більш цікавого коду. Якщо ви почали вивчати мову програмування C, то перед даним уроком раджу засвоїти матеріал з Вступ у C .
Перш ніж говорити про фактичну структуру конструкції If, розглянемо значення ІСТИНА(TRUE) і БРЕХНЯ або ХИБНІСТЬ(FALSE) в комп'ютерній термінології. Істинне твердження є одиницею, результатом якого є відмінне від нуля число. Хибне твердження оцінюється як нуль. При виконанні порівняння з реляційними операторами, оператор повертає 1, якщо порівняння істинно, або 0, якщо порівняння невірно. Наприклад, перевірка 0 == 2 повертає 0. Перевірка 2 == 2 оцінюється в 1. Якщо це вам не зрозуміло, спробуйте використовувати Printf для виведення результатів цих різних порівнянь (наприклад, printf ("% d", 2 == 1) ;) При програмуванні, виконання програми часто вимагає перевірки одного значення, збереженого в змінній, з іншим значенням, щоб визначити, чи є воно більше, менше або дорівнює іншому. Є цілий ряд операторів, які дозволяють ці перевірки. Як відомо це реляційні оператори:
> більше ніж 5 > 4 is TRUE < менше ніж 4 < 5 is TRUE >= більше або рівне 4 >= 4 is TRUE <= менше або рівне 3 <= 4 is TRUE == рівне 5 == 5 is TRUE != не рівне 5 != 4 is TRUE
Цілком імовірно, що ви бачили це раніше, можливо, з дещо іншими символами. Вони не повинні представляти будь-яких перешкод до розуміння. Тепер ви розумієте, що істинність і хибність використовуються для операторів порівняння, давайте подивимося на реальну структуру конструкції If. Базовий синтаксис Структура конструкції If: if ( твердження істинне ) Виконати цей рядок коду
Приведемо простий приклад, який показує синтаксис: if ( 5 < 10 ) printf( "П’ять зараз менше ніж десять, це великий сюрприз=)" );
Тут ми просто виводимо «П’ять зараз менше ніж десять, це великий сюрприз=)", щоб побачити чи це правда чи ні, якщо пощастить, це так! Якщо ви хочете, ви можете написати свою власну повну програму, включаючи stdio.h і помістити це в основній функції і запустити програму для перевірки. Щоб виконувалось більше одного оператора після того як If істинно, використовуйте дужки, як ми зробили з тілом основної функції. Все, що всередині фігурних дужок, називається складним виразом чи блоком. При використанні If, код, який залежить від If називається "тілом" даної конструкції. if ( TRUE ) { /* між фігурними дужками – тіло конструкції If */ Виконати всі операції в тілі }
Я рекомендую завжди використовувати дужки після конструкції If. Якщо ви зробите це, ви ніколи не повинні пам'ятати, щоб додати їх у тому випадку, коли ви захочете виконати більше однієї операції в тілі і зробить тіло конструкції If візуально більш ясним. Else Іноді, коли умова в If набуває хибності(False), було б непогано, щоб виконати певний код, на відміну від коду, який виконується коли умова If буде істинною. Конструкція ELSE (ІНАКШЕ) говорить, що будь-який код після неї (будь це код в одному рядку або код в дужках) виконується у випадку, якщо твердження If невірне. if ( TRUE ) { /* Виконати блок, якщо TRUE */ } else { /* Виконати блок, якщо FALSE */ } Else if Інше використання else це коли є кілька умовних операторів, які можуть оцінити все, але ви хочете тільки одного оператора, тіло якого виконається. Ви можете використовувати "else if" після оператора If і його тіла, таким чином, якщо перше твердження вірне, то "else if" буде ігноруватися, але якщо твердження невірно, конструкція буде перевіряти стан для виразу else if. Якщо це If твердження було правдивим вираз else не буде перевірятися. Можливо використовувати численні вирази else if, щоб тільки один блок коду виконувався. Давайте подивимося на просту програму , щоб випробувати це: #include <stdio.h> int main() /*Важлива частина програми!*/ { int age; /* Створюємо змінну... */ printf( "Введіть ваш вік" ); /* Запитуємо вік */ scanf( "%d", &age ); /* Ввід даних для змінної віку */ if ( age < 100 ) { /* Якщо вік менше 100 */ printf ("Ви молоді\n" ); /* Просто виводимо текст для розуміння синтаксису... */ } else if ( age == 100 ) { /* використовуєм else if*/ printf( "Ви старі\n" ); } else { printf( "Ви дужеее старі\n" ); /* Виконується якщо вік більше 100 */ } return 0; }
Більш цікаві умови з використанням логічних операторів Логічні оператори дозволяють створювати більш складні умовні конструкції. Наприклад, якщо ви хочете перевірити, чи є змінна як більше п'яти так і менше десяти, ви можете використовувати логічне «і» AND, щоб забезпечити як VAR> 5 і VAR <10. У наступному обговоренні логічних операторів, я скористатися логічними операторами для того, щоб відрізнити їх від нормальних англійською мовою. Операторами мови C не є: OR, AND, NOT, хоча вони мають аналогічні функції. При використанні конструкції If ви будете часто хотіти перевірити кілька різних умов. Ви повинні розуміти, логічні оператори OR, NOT та AND. Логічні оператори працюють так само, як оператори порівняння: кожен повертає 0, якщо значення його набуває FALSE або 1, якщо значення TRUE. NOT: оператор NOT приймає один вхідне значення. Якщо воно має значення TRUE, то повертається FALSE і, якщо це вхід FALSE, то повертається TRUE. Наприклад, NOT (1) поверне 0, а NOT (0) приймає значення 1. NOT (будь-який номер,не нуль) — значення 0. В мові C NOT записується як ! .NOT використовується до AND та OR. AND: Це ще одна важлива команда. AND повертає значення TRUE, якщо обидва вхідні значення TRUE (якщо "це" AND "це" істинні). (1) AND (0) дорівнюватиме нулю, тому що один з входів FALSE (обидва значення повинні бути TRUE). (1) AND (1) дорівнює 1. (будь-який номер, не нуль) AND (0) приймає значення 0. AND оператор на мові C визначається як &&. Не дивуйтеся, думаючи, воно перевіряє рівність між числами: це не так. Майте на увазі, що AND оператор виконується до оператора OR. OR: Якщо один (або обидва) з двох значень цього оператора TRUE, то повертається TRUE. Наприклад, (1) OR (0) приймає значення 1. (0) OR (0) приймає значення 0. OR записується у вигляді || . Майте на увазі, що OR буде виконуватись після AND. Можна об'єднати декілька логічних операторів в одній інструкції. Що таке ! (1 && 0) звичайно, це буде TRUE. TRUE тому що 1 && 0 відповідає значенню 0, а !0 значенню 1(TRUE). !( 1 || 0 ) Результат: 0 !( 1 || 1 && 0 ) Результат: 0 (AND виконується швидше ніж OR) !( ( 1 || 0 ) && 0 ) Результат: 1 (Дужки змінили результат) Перекладено з www.cprogramming.com ( 16 Проголосувало ) Новіші матеріали:
Старіші матеріали:
3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved." |