Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Все лекции программирование

.pdf
Скачиваний:
25
Добавлен:
13.03.2016
Размер:
1.94 Mб
Скачать

Вложенные условные операторы if

Оператор if является вложенным, если он находится внутри другого оператора if или else. Во вложенном условном операторе фраза else всегда ассоциирована с ближайшим if в том же блоке, если этот if не ассоциирован с другой фразой else. Например:

if(i)

{

if(j) statement 1;

if(k) statement 2; /* этот if */

else statement 3; /* ассоциирован с этим else */

}

else statement 4; /* ассоциирован с if(i) */

Пример

#include <stdio.h>

int main()

{

int A,B,C,D;

int ip,net,mask;

int mA,mB,mC,mD;

printf("IP address:\n"); scanf("%d.%d.%d.%d", &A,&B,&C,&D); fflush(stdin);

if(A<=255)

{

if(A>=0)

{

printf("The first octet is correct!\n");

} else printf("The first octet is less than 0!\n");

}

else printf("The first octet is more than 255!\n"); return 0;

}

C:\First.exe IP address:

-5.10.10.10

The first octet is less than 0!

C:\First.exe IP address: 300.10.10.10

The first octet is more than 255!

Лестница if-else-if

if (выражение) оператор;

else if (выражение) оператор;

else if (выражение) оператор;

.

.

.

else

оператор;

Пример

#include <stdio.h>

int main()

{

int A,B,C,D;

int ip,net,mask;

int mA,mB,mC,mD;

printf("IP address:\n"); scanf("%d.%d.%d.%d", &A,&B,&C,&D); fflush(stdin);

if(A>255||A<0)

{printf("The first octet is incorrect!\n");} else if (B>255||B<0)

{printf("The second octet is incorrect!\n");} else if (C>255||C<0)

{printf("The third octet is incorrect!\n");} else if (D>255||D<0)

{printf("The fourth octet is incorrect!\n");} else printf("Everything is ok!\n");

return 0;

}

C:\First.exe IP address: 300.10.10.10

The first octet is incorrect! C:\First.exe

IP address: 10.300.10.10

The second octet is incorrect! C:\First.exe

IP address: 10.10.-5.10

The third octet is incorrect! C:\First.exe

IP address: 10.10.10.-5

The fourth octet is incorrect! C:\First.exe

IP address: 10.10.10.10 Everything is ok!

Оператор ?

Оператор ? можно использовать вместо оператора if-else, записанного в форме

if (условие) выражение; else выражение;

Оператор ? является тернарным, потому что он имеет три операнда. Его общая форма следующая:

Условие ? Выражение2 : Выражение3;

Обратите внимание на использование и расположение двоеточия.

Пример

#include <stdio.h>

int main()

{

int A;

printf(“Input your number:\n"); scanf("%d", &A); fflush(stdin);

A>10 ? printf("Your number is more than 10.\n") : printf("Your number is less than 10 or equal 10.\n"); return 0;

}

C:\First.exe

Input your number: 50

Your number is more than 10. C:\First.exe

Input your number: 5

Your number is less than 10 or equal 10.

Пример

#include <stdio.h>

int main()

{

int A,B;

printf(“Input your number:\n"); scanf("%d", &A); fflush(stdin);

B= A>10 ? 100 : 1; printf("B is %d\n",B); return 0;

}

C:\First.exe

Input your number:

50

B is 100

C:\First.exe

Input your number:

5

B is 1

Хороший стиль

Избегайте двойных проверок в условиях

Хорошо:

if(b) printf("%d\n", a/b);

else printf("Division by zero!!!\n");

Плохо:

if(b != 0) printf("%d\n", a/b);

Оператор выбора - switch

Оператор выбора switch предназначен для выбора ветви вычислительного процесса

исходя из значения управляющего выражения. Общая форма оператора switch следующая:

switch (выражение) { case постоянная1:

последовательность операторов break;

case постоянная2: последовательность операторов break;

case постоянная3: последовательность операторов break;

default:

последовательность операторов;

}

Пример

#include <stdio.h>

int main()

{

int flag;

printf("Input your number:\n"); scanf("%d",&flag);

switch(flag) {

case 1: printf("One\n"); break; case 2: printf("Two\n"); break; case 3: printf("Three\n"); break; case 4: printf("Four\n"); break; case 5: printf("Five\n"); break; default:

printf("Your number is more than 5 or less than 1.\n",flag);

}

return 0;

C:\First.exe

Input your number: 3

Three

C:\First.exe

Input your number: 3

Three

Four

Five

Your number is more than 5 or less than 1.

}