Early returns keep special cases close to the top of a function.

Early Returns

early_returns.cpp
#include <iostream>

int shippingCost(int itemCount) {
    if (itemCount <= 0) {
        return 0;
    }
    if (itemCount > 10) {
        return 12;
    }
    return 5;
}

int main() {
    int itemCount = ;

    int cost = shippingCost(itemCount);

    std::cout << "itemCount=" << itemCount << std::endl;
    std::cout << "shippingCost=" << cost << std::endl;
    return 0;
}
#include <iostream>

int shippingCost(int itemCount) {
    if (itemCount <= 0) {
        return 0;
    }
    if (itemCount > 10) {
        return 12;
    }
    return 5;
}

int main() {
    int itemCount = ;

    int cost = shippingCost(itemCount);

    std::cout << "itemCount=" << itemCount << std::endl;
    std::cout << "shippingCost=" << cost << std::endl;
    return 0;
}
#include <iostream>

int shippingCost(int itemCount) {
    if (itemCount <= 0) {
        return 0;
    }
    if (itemCount > 10) {
        return 12;
    }
    return 5;
}

int main() {
    int itemCount = ;

    int cost = shippingCost(itemCount);

    std::cout << "itemCount=" << itemCount << std::endl;
    std::cout << "shippingCost=" << cost << std::endl;
    return 0;
}
guard clause A guard clause returns early when a value does not meet the normal assumptions of the function.