mortennobel / cpp-cheatsheet

Modern C++ Cheatsheet
3.16k stars 705 forks source link

switch case logic #8

Open uxrkhan opened 4 years ago

uxrkhan commented 4 years ago

The switch case explanation is a bit misleading . There should be a break statement after every case for it to function as an if-else statement, otherwise it will evaluate all the cases.

switch (x) {                  // x must be int
    case X1: a; break;        // If x == X1 (must be a const), jump here
    case X2: b; break;        // Else if x == X2, jump here
    default: c;               // Else jump here (optional)
}
singhaln93 commented 3 years ago

The switch case explanation is a bit misleading . There should be a break statement after every case for it to function as an if-else statement, otherwise it will evaluate all the cases.

switch (x) {                  // x must be int
    case X1: a; break;        // If x == X1 (must be a const), jump here
    case X2: b; break;        // Else if x == X2, jump here
    default: c;               // Else jump here (optional)
}

Hi, @uxrkhan Switch cases i.e. (X1 and X2) mentioned above have break statements. But the fact is default case should also include a break statement. @mortennobel thanks for creating this cheat sheet. You can insert a break for default case and close this issue.

nasir-shah-cloud commented 3 years ago

The switch case also support char type , not only int type, though char is a kind of int.

switch (x) { // x must be int and char case X1: a; break; // If x == X1 (must be a const), jump here case X2: b; break; // Else if x == X2, jump here default: c; // Else jump here (optional) }