Программы
Оператор switch

Оператор switch

Аналог оператора if-else на много альтернативных вариантов выполнения. Однако, так как используются не любые выражения, а только константы, сильно оптимизирован.

switch (выражение) {
case константа1:
  операторы1
case константа2:
  операторы2
default:
  операторы3
}

Идём сверху вниз и проверяем на соответствие константе. В случае соответствия, выполняются операторы (не оператор, а операторы!). Чтобы остановить проверку (а она продолжится далее), вызываем break – он прерывает поток выполнения циклов или оператора switch, возвращаясь на уровень выше.

Если никто так нас и не остановил, а варианты закончились – переходим к "ветке" default.

Пример кода для получения текста "комментарий/комментариев" в зависимости от их числа:

#include <stdio.h>

int main (void) {
  unsigned a = 1;
  char *text;  // Указатель на символы - поймём позднее

  switch (a % 10) {
  case 1:
    text = "комментарий";
    break;
  case 2:
  case 3:
  case 4:
    text = "комментария";
    break;
  case 5: case 6: case 7: case 8: case 9: case 0:
    text = "комментариев";
  default:
    return 1;
  }

  puts(text);

  return 0;
}

Пока смотрим только на оператор switch. Всё остальное – чтобы заработал пример, а сам пример не был бы совсем выдуманным.

Также может быть вам интересно:

А что если?..

Условные операторы Си

Читать »

Циклы в Си

For, while и другие способы "крутиться в цикле"

Читать »
Фото Как настроить отправку почты из Django

Как настроить отправку почты из Django

Письма об ошибках, отчёты на почту, восстановление паролей - всё это полезно при работе с сайтом. Django предоставляет удобный способ это сделать с минимумом настроек!

Фото Добавляем поддержку медиа-файлов в Django проект

Добавляем поддержку медиа-файлов в Django проект

Современные сайты редко ограничиваются только текстом и вёрсткой. Часто в заметках красуются фотографии, а рядом с описанием товаров - их изображения.

Фото Настройка журналирования (логирования) в Python с примерами

Настройка журналирования (логирования) в Python с примерами

Во время работы программы часто нужно сохранять некоторые важные записи о процессе выполнения команды. В Python есть довольно мощный модуль для работы с логами - давайте разберёмся с тем, как его использовать.

Фото Шаблон разработки ПО — Model View Controller (MVC)

Шаблон разработки ПО — Model View Controller (MVC)

MVC - один из самых распространённых архитектурных шаблонов разработки. Часто используется в различных фреймворках. В том числе и в Django.

Фото Добавляем переменные в контекст Django шаблонов (свой контекст-процессор)

Добавляем переменные в контекст Django шаблонов (свой контекст-процессор)

В Django вы можете передавать данные в шаблоны посредством контекстов. Контекст передаётся из контроллера (view в терминах Django), однако, если одни и те же данные нужны в разных местах, лучше сделать свой контекст-процессор.

Фото Пример своей консольной команды в Django проекте

Пример своей консольной команды в Django проекте

Если вы работали с Django проектом, то, скорее всего, запускали команды из консоли (manage.py). В Django есть простой способ писать свои команды для управления проектом.

Фото Разграничение прав доступа на Django сайте

Разграничение прав доступа на Django сайте

Почти на любом веб-сайте необходимо разделять пользователей на группы и предоставлять им разные возможности. В Django есть довольно серьёзная система прав доступа для пользователей - давайте её рассмотрим!

Фото Пользователи и их создание в Django - своя регистрация на сайте

Пользователи и их создание в Django - своя регистрация на сайте

Если вашим сайтом должны активно пользоваться несколько человек, то полезно их различать, а значит - надо уметь создавать пользователей, либо предоставлять возможность регистрации Django пользователей.