- •Структура программы на языке с
- •Int main(список параметров)
- •Библиотека и компоновка
- •Словарь терминов
- •Выражения
- •Переменные
- •Инициализация переменных
- •Константы
- •Строковые константы
- •Специальные символьные константы
- •Оператор присваивания
- •Множественные присваивания
- •Арифметические операции
- •Операции увеличения (инкремента) и уменьшения (декремента)
- •Сводка приоритетов операций
- •Выражения
- •Явное преоразование типов: операция приведения типов
- •Операция определения размера sizof
- •Операторы
- •Int a, b, c; // объявление переменных
- •Пробелы и круглые скобки
- •Логические значениия истина (True) и ложь (False) в языке с
- •Условные операторы Оператор if
- •If (выражение) оператор;
- •Int magic; /* магическое число */
- •Int guess; /* попытка игрока */
- •Int magic; /* магическое число */
- •Int guess; /* попытка игрока */
- •If(k) statement 2; /* этот if */
- •Int magic; /* магическое число */
- •Оператор выбора - switch
- •Вложенные операторы switch
- •Цикл for
- •Бесконечный цикл
- •Варианты цикла for
- •Бесконечный цикл
- •Цикл for без тела цикла
- •Цикл while
- •Случае цикл требует повторить ввод. Цикл do-while
- •Цикл do-while часто используется в функциях выбора пунктов меню. Если пользователь вводит допустимое значение, оно возвращается в качестве значения функции. В противном
- •Оператор перехода
- •Оператор return
- •Оператор goto
- •Оператор break
- •Функция exit()
- •Void exit (int код_возврата);
- •Оператор continue
- •Int n, sum; // sum - сумма цифр числа
- •Оператор-выражение
- •Далее адреса Операция получения адреса (&) и раскрытия ссылки (*)
- •Одномерные массивы
Оператор continue
Оператор continue— осуществляет прерывание текущей итерации цикла и переход к следующей итерации. При этом все операторы до конца тела цикла пропускаются. В циклеforоператорcontinueвызывает выполнение операторов приращения и проверки условия цикла. В циклахwhileиdo-whileоператорcontinueпередает управление операторам проверки условий цикла. В следующем примере программа подсчитывает количество пробелов в строке, введенной пользователем:
/* Подсчет количества пробелов */
#include <stdio.h>
int main(void)
{
char s[80], *str;
int space;
printf("Введите строку: ");
gets(s);
str = s;
for(space=0; *str; str++) {
if(*str != ' ') continue;
space++;
}
printf("%d пробелов\n", space);
return 0;
}
Каждый символ строки сравнивается с пробелом. Если сравниваемый символ не является пробелом, оператор continueпередает управление в конец циклаforи выполняется следующая итерация. Если символ является пробелом, значение переменнойspaceувеличивается на 1.
В следующем примере оператор continueприменяется для выхода из циклаwhileпутем передачи управления на условие цикла:
void code(void)
{
char done, ch;
done = 0;
while(!done)
{
ch = getchar();
if(ch=='$')
{
done = 1;
continue;
}
putchar(ch+1); /* печать следующего в алфавитном
порядке символа */
}
}
Функция codeпредназначена для кодирования сообщения путем замены каждого символа символом, код которого на 1 больше кода исходного символа в коде ASCII. Например, символ А заменяется символом В (если это латинские символы.). Функция прекращает работу при вводе символа$. При этом переменнойdoneприсваивается значение 1 и операторcontinueпередает управление на условие цикла, что и прекращает выполнение цикла.
Задача. Ввести натуральное число и найти сумму его цифр. Организовать ввод числа так, что-
бы нельзя было ввести отрицательное число или ноль.
Любая программа должна обеспечивать защиту от неверного ввода данных (иногда такую
защиту называют «защитой от дурака» — fool proof). Поскольку пользователь может вводить
данные неверно сколько угодно раз, то надо использовать цикл с условием. С другой стороны,
один раз обязательно надо ввести число, поэтому нужен цикл с постусловием.
В отличие от предыдущей программы, теперь надо при каждом делении определять оста-
ток (последняя цифра числа равна остатку от деления его на 10) и суммировать все остатки в
специальной переменной.
#include <stdio.h>
#include <conio.h>
main()
{
Int n, sum; // sum - сумма цифр числа
sum = 0; // сначала сумму обнуляем
do { // начало цикла
printf ( "\nВведите натуральное число:" );
scanf ( "%d", &N );
}
while ( N <= 0 ); // условие цикла «пока N <= 0»
while ( N > 0 ) {
sum += N % 10;
N /= 10;
}
printf ( "Сумма цифр этого числа равна %d\n", sum );
getch();
• С помощью оператора break можно досрочно выходить из любых циклов: for, while,
do—while.
• Чтобы досрочно завершить текущий шаг цикла и сразу перейти к следующему шагу, исполь-
зуют оператор continue.
Оператор-выражение
Говоря об операторах, будет уместно добавить несколько слов и о выражениях. Любое выражение, которое заканчивается точкой с запятой, является оператором.Рассмотрим следующие примеры:
func(); /* вызов функции */
a = b+c; /* оператор присваивания */
; /* пустой оператор */
Первый оператор выполняет вызов функции, второй — присваивание.. Последний пример — пустой оператор, не выполняющий никакого действия.