Основы C/C++

Условия, циклы и switch

if выбирает по условию, switch обрабатывает отдельные cases, а loop повторяет блок.

Что такое Условия, циклы и switch?

if выбирает по условию, switch обрабатывает отдельные cases, а loop повторяет блок.

Объедините ветвления и циклы в небольшой программе.

Важные моменты

  • Включайте предупреждения компилятора и исправляйте их.
  • Знайте тип и lifetime каждого значения.
  • Проверяйте ввод и границы массивов.

Примеры кода на C и C++

C
Запустить →
main.c
#include <stdio.h>

int main(void) {
    int scores[] = {92, 71, 84};
    int total = 0;
    for (int i = 0; i < 3; ++i) total += scores[i];
    int average = total / 3;
    switch (average / 10) {
        case 10: case 9: puts("Grade A"); break;
        case 8: puts("Grade B"); break;
        default: puts("Keep practicing");
    }
    return 0;
}
Ожидаемый результат
Grade B
C++
Запустить →
main.cpp
#include <iostream>
#include <vector>

int main() {
    std::vector<int> scores{92, 71, 84};
    int total = 0;
    for (int score : scores) total += score;
    switch ((total / static_cast<int>(scores.size())) / 10) {
        case 10: case 9: std::cout << "Grade A\n"; break;
        case 8: std::cout << "Grade B\n"; break;
        default: std::cout << "Keep practicing\n";
    }
}
Ожидаемый результат
Grade B

Сравнение C и C++

Синтаксис почти общий. Используйте скобки, не допускайте случайный fall-through и выход индекса за массив.

C

C явно показывает небольшие процедурные API и представление данных.

C++

C++ сохраняет низкоуровневую модель и добавляет безопасные типы.

Практические задания

Запустите обе версии и изменяйте их, сравнивая гарантии языков.

  • Добавьте неверные и граничные значения.
  • Компилируйте с -Wall -Wextra -Wpedantic.
  • Разделите объявления и реализацию.