Все привет :) будьте внимательны пожалуйста
У меня в коде есть много разных условий, каждое условие уникально и имеет уникальный код.
Код который внизу создан для примера, он работает правильно!
int a = 0;
/* .... */
if (a == 0) // здесь будет код, очень длинный, число это просто пример!!!
{
cout << a << "\n" << endl;
a++; // код который постоянно повторяется a++;
}
if (a == 1)
{
cout << a << "\n" << endl;
a++; //
}
if (a == 2) {
cout << a << "\n" << endl;
a++;
}
if (a == 3) {
cout << a << "\n" << endl;
a++;
}
// ответ получаем 1, 2, 3
как видите a++;
постоянно повторяется
Я бы хотел написать это один раз для всех условий, но не знаю как.
Этот вариант не подходит как видите он выполняется только один раз.
int a = 0;
/* .... */
if (a == 0 ||
a == 1 ||
a == 2 ||
a == 3 ||
a == 4) {
cout << a << "\n" << endl;
a++;
}
// ответ только один это 0 а мне нужно типа такой ответ 0, 1, 2, 3 как будто каждое условия if было выполнено.
Ну сделайте проверку в отдельной функции:
#include <iostream>
int main()
{
auto a{0};
auto const checker
{
[&](auto const condition)
{
if(condition)
{
::std::cout << a << ::std::endl;
a++; // код который постоянно повторяется a++;
}
}
};
checker(a == 0);
checker(a == 1);
checker(a == 2);
checker(a == 3);
}
Вариант без лямбды:
struct ChainCheck
{
int & a;
auto operator ()(bool const condition) const
{
if(condition)
{
::std::cout << a << ::std::endl;
a++; // код который постоянно повторяется a++;
}
return *this;
}
};
int main()
{
auto a{0};
ChainCheck{a}(a == 0)(a == 1)(a == 2)(a == 3);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Как известно, функция Эйлера ищет количество взаимно простых чисел с N на отрезке [1N]
Занялся написанием небольшой игрушки и вот добравшись до музыкально-звуковой составляющий столкнулся с проблемой
Не могу красиво выйти из цикла используя break внутри switch, успевает сработать только один разпробовал еще return; но он выкидывает в такую далину...
Около месяца изучаю C++, несколько дней пытаюсь отладить кодОшибка, наверное, очевидная для бывалых, всё никак не находится