Изучение различных методов реализации лестничного оператора if-else if в C для классификации кораблей

В программировании на C лестничный оператор if-else if представляет собой мощную конструкцию, позволяющую структурированно оценивать несколько условий. В этой статье блога мы углубимся в различные методы реализации лестничного оператора if-else if, специально разработанного для классификации кораблей. Мы предоставим примеры кода для каждого метода и выделим их плюсы и минусы. Давайте погрузимся!

Метод 1: вложенные операторы if-else

if (shipLength <= 100) {
    printf("Small Ship");
} else if (shipLength <= 200) {
    printf("Medium Ship");
} else if (shipLength <= 300) {
    printf("Large Ship");
} else {
    printf("Extra Large Ship");
}

Метод 2: оператор Switch

switch(shipLength) {
    case 0 ... 100:
        printf("Small Ship");
        break;
    case 101 ... 200:
        printf("Medium Ship");
        break;
    case 201 ... 300:
        printf("Large Ship");
        break;
    default:
        printf("Extra Large Ship");
        break;
}

Метод 3: классификация на основе массива

const char* shipTypes[] = {
    "Small Ship",
    "Medium Ship",
    "Large Ship",
    "Extra Large Ship"
};
int index = (shipLength <= 100) ? 0 :
            (shipLength <= 200) ? 1 :
            (shipLength <= 300) ? 2 :
            3;
printf("%s", shipTypes[index]);

Метод 4. Классификация на основе функций

typedef enum {
    SMALL_SHIP,
    MEDIUM_SHIP,
    LARGE_SHIP,
    EXTRA_LARGE_SHIP
} ShipClass;
ShipClass classifyShip(int shipLength) {
    if (shipLength <= 100) {
        return SMALL_SHIP;
    } else if (shipLength <= 200) {
        return MEDIUM_SHIP;
    } else if (shipLength <= 300) {
        return LARGE_SHIP;
    } else {
        return EXTRA_LARGE_SHIP;
    }
}
// Usage
ShipClass shipType = classifyShip(shipLength);
switch(shipType) {
    case SMALL_SHIP:
        printf("Small Ship");
        break;
    case MEDIUM_SHIP:
        printf("Medium Ship");
        break;
    case LARGE_SHIP:
        printf("Large Ship");
        break;
    case EXTRA_LARGE_SHIP:
        printf("Extra Large Ship");
        break;
}

В этой статье мы рассмотрели различные методы реализации лестничного оператора if-else if для классификации кораблей на языке программирования C. Мы обсудили вложенный подход if-else, операторы переключения, классификацию на основе массивов и классификацию на основе функций. Каждый метод имеет свои преимущества и может быть выбран исходя из конкретных требований вашего проекта. Используя эти методы, вы можете легко классифицировать корабли по их длине и соответствующим образом выполнять соответствующие действия.