Условия, циклы и switch
if выбирает по условию, switch обрабатывает отдельные cases, а loop повторяет блок.
Что такое Условия, циклы и switch?
if выбирает по условию, switch обрабатывает отдельные cases, а loop повторяет блок.
Объедините ветвления и циклы в небольшой программе.
Важные моменты
- Включайте предупреждения компилятора и исправляйте их.
- Знайте тип и lifetime каждого значения.
- Проверяйте ввод и границы массивов.
Примеры кода на 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.
- Разделите объявления и реализацию.