goto target_label;target_label: statement;- Cannot jump into a block skipping variable initialization with non-trivial constructors.
- Cannot jump between different functions.
main.cpp
#include <iostream>
int main() {
int matrix[3][3] = {
{1, 2, 3},
{4, 99, 6},
{7, 8, 9}
};
int target = 99;
std::cout << "Searching matrix for " << target << "...
";
for (int r = 0; r < 3; ++r) {
for (int c = 0; c < 3; ++c) {
if (matrix[r][c] == target) {
std::cout << "Target found at [" << r << "][" << c << "]
";
goto exit_search; // Multi-level break
}
}
}
exit_search:
std::cout << "Search routine finished cleanly.
";
return 0;
}