
- •Конструкция else if
- •Рассмотрим интересные условные выражения с использование логических операторов.
- •Циклы for, while и do while в языке c
- •Функции в языке программирования c
- •Указатели в c
- •Что такое указатели и зачем они нужны?
- •Объявление указателя, получение адреса переменной
- •Выделение памяти в Си (функция malloc)
- •Динамическое выделение памяти в c
- •Выделение памяти в Си (функция malloc)
- •Структуры в языке с
- •Массивы в c (часть 1)
#include <stdio.h> директива препроцессору
Int main() {
printf(“Hello, world!”)
return 0;
}
директива #include заставляет компилятор подключить к программе заголовок, имя которого указано между < >. stdio.h — библиотека, содержащая прототипы функций, позволяющих вводить-выводить (и многое другое!) информацию на экран. int main() — главная в теле программы функция. Выполнение программы начинается, и как правило, заканчивается именно с нее. Формально, каждая программа на С должна содержать в себе функцию main(). int означает тип возвращаемого значения функцией в вызывающий процесс.
Символы фигурных скобочек { — открывающая скобка, а так же } — закрывающая скобка, означают начало (и следовательно конец) программного блока. Программный блок в С — основная программная единица (т.е. инструкции, помещенные между началом и концом блока, либо выполняются все, либо — ни одна из них). printf("Hello world!") — функция, выполняющая вывод на консоль, выражения, заданного между двойными кавычками ""
return 0 — заставляет функцию (в данном случае main()) прекратить свое выполнение и передать 0 в вызывающий процесс. Идеология Си предполагает при нормальном завершении функции возвращать нулевое значение ( и не нулевое — при аварийном и др.)
#.
if
Оператор выбора if позволяет нам выполнять или не выполнять определенные участки кода ,в зависимости от того является ли истинным или ложным условие этого оператора. Одно из самых важных назначений оператора выбора if так это то, что он позволяет программе совершить действие на выбор, в зависимости от того, какие данные ввел пользователь. Банальный пример использования if — это проверка введенного пользователем пароля, если пароль правильный, программа разрешает пользователю совершить какое-то действие, если пароль введен неправильный, то программа не позволит пользователю получить доступ к ограниченным ресурсам.
Перед тем как начать разбираться в структуре оператора if, стоит обратить внимание на такие значения как ИСТИНА и ЛОЖЬ в контексте программирования и компьютерной терминологии.
Истинное значение (ИСТИНА) имеет значение отличное от нуля, ЛОЖЬ эквивалентна нулю. При использовании операторов сравнения, оператор будет возвращать единицу, если выражение сравнения — истинно, или — 0, если условное выражение ложно. Например, выражение 3 == 2 вернет значение 0, так как три не равно двум. Выражение 5 == 5 оценивается как истинное и вернет значение 1. Если вам сложно это понять, попробуйте сделать вывод на экран этих выражений, например: printf ( "%d", 7 == 0 );
== |
равно |
5 == 5 это истина |
!= |
не равно |
3 != 2 и это истина |
> |
больше |
7 > 6 — истина |
>= |
больше или равно |
1 >= 1 истина |
< |
меньше |
5 < 5 — ложь |
<= |
меньше или равно |
3 <= 2 — ложь |
1 2 |
if ( условное выражение ) // тут располагается один оператор, который выполнится, если условное выражение - истинно |
Вот вам простой пример использования оператора if:
1 2 |
if ( 7 > 6 ) printf( "Семь больше шести" ); |
В этом примере программа оценивает условное выражение — «семь больше шести?» Чтобы увидеть результат работы этого фрагмента кода просто вставьте его в функцию main() и не забудьте включить заголовок stdio.h, запускаем программу и видим результат — true. Конструкция оператора выбора if c фигурными скобочками:
1 2 3 |
if ( TRUE ) { /* весь код который помещен внутрь скобок - выполнится */ } |
Если не использовать фигурные скобочки, то к телу оператора if будет относиться только один, первый оператор. Если же необходимо управлять несколькими операторами, то необходимо поместить их в фигурные скобочки. Я рекомендую всегда ставить скобки, после объявления if — это хороший тон программирования и вы никогда не запутаетесь в своем коде, так как такое объявление наиболее понятное.
#
Оператор else
Иногда, когда условное выражение — ложное, было бы удобно, чтобы выполнялся некоторый код, отличный от того кода ,который выполняется при ИСТИННОМ условии. Как же это делается? Вот пример использования оператора if else:
1 2 3 4 5 6 |
if ( TRUE ) { /* выполняется этот код ,если условие истинно */ } else { /* выполняется этот код ,если условие ложно */ } |
Конструкция else if
Обычно операторы else if используют, когда необходим множественный выбор, то есть например определены несколько условий, которые одновременно могут быть истинными, но нам необходимо только одно истинное условное выражение. Вы можете использовать оператор if else сразу после оператора выбора if, после его тела. В таком случае, если условие первого оператора выбора — ИСТИННО, тогда конструкция else if будет игнорироваться, тогда как в противном случае, если условие первого оператора выбора — ЛОЖНО, начнет выполнятся проверка в конструкции else if. То есть если условие одного оператора if будет истинно, то другие проверяться не будут.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <stdio.h> #include <stdlib.h> int main() { int age; // без переменной никак...
printf( "Сколько вам лет? " ); // спрашиваем пользователя о его возрасте scanf( "%d", &age ); // ввод пользователем количества лет if ( age < 100 ) { // если введенный возраст меньше 100 printf ("Вы очень молоды!n" ); // просто показываем что программа сработала верно... } else if ( age == 100 ) { // используем else для примера printf( "Молодость уже позадиn" ); } else { printf( "Столько не живутn" ); // если ни одно из выше-перечисленных условий не подошло, то программа покажет этот вариант ответа } return 0; } |
|
|
// если ни одно из выше-перечисленных условий не подошло, то программа покажет этот вариант ответа
Рассмотрим интересные условные выражения с использование логических операторов.
Логические операторы позволяют создавать более сложные условные выражения. Например, если вы хотите проверить, является ли ваша переменная больше 0 но меньше 10, в таком случае вам достаточно воспользоваться логическим оператором — И. Вот так это делается — var > 0 and var < 10. В языке СИ есть точно такой же же оператор, только обозначается он иначе — &&. При использовании операторов if часто необходимо проверить несколько различных условий, поэтому очень важно понимать логические операторы OR, NOT и AND. Логические операторы работают точно так же как и операторы сравнения: они возвращают 0, если имеют ложное значение или 1, если логическое выражение — истинное.
В С++ существует три логические операции:
Логическая операция И &&, нам уже известная;
Логическая операция ИЛИ ||;
Логическая операция НЕ ! или логическое отрицание.
Логические операции образуют сложное (составное) условие из нескольких простых (два или более) условий. Эти операции упрощают структуру программного кода в несколько раз. Да, можно обойтись и без них, но тогда количество ифов увеличивается в несколько раз, в зависимости от условия. В следующей таблице кратко охарактеризованы все логические операции в языке программирования С++, для построения логических условий.
Таблица 1 — Логические операции С++ |
|||
Операции |
Обозначение |
Условие |
Краткое описание |
И |
&& |
a == 3 && b > 4 |
Составное условие истинно, если истинны оба простых условия |
ИЛИ |
|| |
a == 3 || b > 4 |
Составное условие истинно, если истинно, хотя бы одно из простых условий |
НЕ |
! |
!( a == 3) |
Условие истинно, если a не равно 3 |
Сейчас следует понять разницу между логической операцией И и логической операцией ИЛИ , чтобы в дальнейшем не путаться. Пришло время познакомиться с типом данных bool –логический тип данных. Данный тип данных может принимать два значения: true (истина) и false (ложь). Проверяемое условие в операторах выбора имеет тип данных bool.
// or_and_not.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
bool a1 = true, a2 = false; // объявление логических переменных
bool a3 = true, a4 = false;
cout << "Tablica istinnosti log operacii &&" << endl;
cout << "true && false: " << ( a1 && a2 ) << endl // логическое И
<< "false && true: " << ( a2 && a1 ) << endl
<< "true && true: " << ( a1 && a3 ) << endl
<< "false && false: " << ( a2 && a4 ) << endl;
cout << "Tablica istinnosti log operacii ||" << endl;
cout << "true || false: " << ( a1 || a2 ) << endl // логическое ИЛИ
<< "false || true: " << ( a2 || a1 ) << endl
<< "true || true: " << ( a1 || a3 ) << endl
<< "false || false: " << ( a2 || a4 ) << endl;
cout << "Tablica istinnosti log operacii !" << endl;
cout << "!true: " << ( ! a1 ) << endl // логическое НЕ
<< "!false: "<< ( ! a2 ) << endl;
system("pause");
return 0;
}
Строки 9 и 10 вам должны быть понятны, так как здесь инициализируются переменные типа bool. Причем каждой переменной присваивается значение true или false. Начиная с 9-й строки и заканчивая 20-й, показано использование логических операций. Результат работы программы (см. Рисунок 1).
Рисунок 1 — Логические операции С++
CppStudio.com
Tablica istinnosti log operacii &&
true && false: 0
false && true: 0
true && true: 1
false && false: 0
Tablica istinnosti log operacii ||
true || false: 1
false || true: 1
true || true: 1
false || false: 0
Tablica istinnosti log operacii !
!true: 0
!false: 1
Для продолжения нажмите любую клавишу . . .
Наверное, у вас возникает вопрос, «А что это за нолики и единички?». Если есть вопрос, то на него нужно ответить. Отвечаю: «Нолик-это представление логического значения false (ложь), ну а единички – это логическое true (истина)». Коротко поясню некоторые моменты. Составное условие с использованием логического И истинно только в том случае, когда истинны оба простых условия. Во всех остальных случаях составное условие ложно. Составное условие с использованием логического ИЛИ ложно только в том случае, когда ложные оба простых условия. Во всех остальных случаях составное условие истинно. Логическое отрицание НЕ является унарной операцией, и она не комбинирует два условия, в отличие от логических операций И и ИЛИ, которые являются бинарными операциями. Логическое отрицание позволяет перевернуть смысл условия, что в некоторых случаях очень удобно. Условие с логическим отрицанием истинно в том случае, если это же условие ложно без отрицания, и наоборот.
#