| |
BIGLIB |
| большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно |
|
| |
ФАНТАСТИКА |
| фентези,
фантастика, фантастические повести |
|
| |
ФИЛОСОФИЯ |
книги, которые заставляют
задуматься над окружающим тебя миром.
|
|
| |
МЕДИЦИНА |
медицинские книги,
методички,
народные лечебники |
|
| |
КУЛИНАРИЯ |
рецепты
тортов, консервирование,
все о спиртных
напитках. |
|
| |
СТИХИ |
| стихи популярных
и не очень авторов |
|
| |
ТВОРЧЕСТВО |
| народное творчество,
стихи, песни и т.д. |
|
| |
ЮМОР |
| анекдоты, приколы,
смешные истории |
|
| |
ЭРОТИКА |
| эротические рассказы,
книги о технике секса,
кама-сутра и др. |
|
|
| |
 |
----------------------------------------------------------------
Иногда нужно не выходить из цикла, а пропустить ряд операто-
ров в теле цикла и начать его заново. В этом случае можно приме-
нить оператор continue, предназначенный специально для этого. Об-
ратите внимание на следующую программу:
#define LIMIT 100
#define MAX 10
main()
{
int i,j,k,score;
int scores[LIMIT][MAX];
for (i = 0; i < LIMIT; i++) (
j = 0;
while (j < MAX-1) (
printf("Введите следующее значение #%d: ",j);
scanf("%d", score);
if (score < 0)
continue;
- 527,528 -
scores[i][++j] = score;
)
scores[i][0] = j;
)
}
Когда выполняется оператор continue, программа пропускает
остаток цикла и начинает цикл сначала. В результате эта программа
работает иначе, чем предыдущая. При вводе пользователем числа -1
считатся что была сделана ошибка, и вместо выхода из внутреннего
цикла цикл while начинается сначала. Поскольку значение j не было
увеличено, программа снова просит ввести то же значение.
Оператор goto
-----------------------------------------------------------------
Да, в Си действительно есть оператор goto. Формат простой:
goto метка, где "метка" - любой идентификатор, связанный с опре-
деленным выражением. Однако наиболее разумное решение при прог-
раммировании на Си - обойтись без использования оператора goto.
Для этого предусмотрено три оператора цикла. Подумайте вниматель-
но, прежде чем использовать оператор goto, действительно ли он
вам нужен в создавшейся ситуации и может быть его можно заменить
на оператор цикла?.
Условный оператор (?:)
-----------------------------------------------------------------
В некоторых случаях необходимо произвести выбор между двумя
альтернативами (и результирующими значениями), основанный на не-
котором условии. Обычно это реализуется оператором if ... else,
например, так:
- 529,530 -
int imin(int a, int b)
(
if (a < b) return(a);
else return(b);
)
Но, как оказывается, для реализации такого типа выбора дос-
таточно одной специальной конструкции. Ее формат следующий:
выражение 1 ? выражение 2 : выражение 3.
А смысл таков: "если выражение 1 верно, то вычисляется выра-
жение 2 и все выражение получает его значение; иначе вычисляется
выражение 3 и передается его значение". Используя эту конструк-
цию, imin можно представить следующим образом:
int imin(int a, int b)
(
return((a < b) ? a : b );
)
более того,можно даже записать imin как строку макроса:
#define imin(a,b) ((a < b) ? a : b)
Теперь, где бы ваша программа ни встретила выражение
imin(e1,e2), она замещает его на ((e1
|
adfun.ru
|
|
|
|