Validation checks incoming values before the rest of the program trusts them.

input validation Defensive code chooses a safe path when input falls outside the allowed range.

Input Validation

requestedSeats
input_validation.cpp
Replay: real traced execution (multi-file project)
#include <iostream>

int main() {
    int requestedSeats = -2;
    int fallbackSeats = 1;
    int maxSeats = 6;

    bool valid = requestedSeats >= 1 && requestedSeats <= maxSeats;
    int seats = valid ? requestedSeats : fallbackSeats;

    std::cout << "requestedSeats=" << requestedSeats << std::endl;
    std::cout << "valid=" << valid << std::endl;
    std::cout << "seats=" << seats << std::endl;
    return 0;
}
#include <iostream>

int main() {
    int requestedSeats = 2;
    int fallbackSeats = 1;
    int maxSeats = 6;

    bool valid = requestedSeats >= 1 && requestedSeats <= maxSeats;
    int seats = valid ? requestedSeats : fallbackSeats;

    std::cout << "requestedSeats=" << requestedSeats << std::endl;
    std::cout << "valid=" << valid << std::endl;
    std::cout << "seats=" << seats << std::endl;
    return 0;
}
#include <iostream>

int main() {
    int requestedSeats = 8;
    int fallbackSeats = 1;
    int maxSeats = 6;

    bool valid = requestedSeats >= 1 && requestedSeats <= maxSeats;
    int seats = valid ? requestedSeats : fallbackSeats;

    std::cout << "requestedSeats=" << requestedSeats << std::endl;
    std::cout << "valid=" << valid << std::endl;
    std::cout << "seats=" << seats << std::endl;
    return 0;
}
  1. requestedSeats ← -2, fallbackSeats ← 1, maxSeats ← 6, valid ← 0

    3int main() {4    int requestedSeats→ -2 = -2; //@requestedSeats=2, 85    int fallbackSeats→ 1 = 1;6    int maxSeats→ 6 = 6;78    bool valid→ 0 = requestedSeats-2 >= 1 && requestedSeats <= maxSeats6;9    int seats→ 1 = valid0 ? requestedSeats-2 : fallbackSeats1;1011    std::cout << "requestedSeats=" << requestedSeats-2 << std::endl;12    std::cout << "valid=" << valid0 << std::endl;13    std::cout << "seats=" << seats1 << std::endl;14    return 0;15}
    outputrequestedSeats=-2
    valid=0
    seats=1
  1. requestedSeats ← 2, fallbackSeats ← 1, maxSeats ← 6, valid ← 1

    3int main() {4    int requestedSeats→ 2 = 2;5    int fallbackSeats→ 1 = 1;6    int maxSeats→ 6 = 6;78    bool valid→ 1 = requestedSeats2 >= 1 && requestedSeats <= maxSeats6;9    int seats→ 2 = valid1 ? requestedSeats2 : fallbackSeats1;1011    std::cout << "requestedSeats=" << requestedSeats2 << std::endl;12    std::cout << "valid=" << valid1 << std::endl;13    std::cout << "seats=" << seats2 << std::endl;14    return 0;15}
    outputrequestedSeats=2
    valid=1
    seats=2
  1. requestedSeats ← 8, fallbackSeats ← 1, maxSeats ← 6, valid ← 0

    3int main() {4    int requestedSeats→ 8 = 8;5    int fallbackSeats→ 1 = 1;6    int maxSeats→ 6 = 6;78    bool valid→ 0 = requestedSeats8 >= 1 && requestedSeats <= maxSeats6;9    int seats→ 1 = valid0 ? requestedSeats8 : fallbackSeats1;1011    std::cout << "requestedSeats=" << requestedSeats8 << std::endl;12    std::cout << "valid=" << valid0 << std::endl;13    std::cout << "seats=" << seats1 << std::endl;14    return 0;15}
    outputrequestedSeats=8
    valid=0
    seats=1