if (x) y else z; if(a)b else if (c) else d; etc x:=(if (a) b else c); a and b or c // usually the same as if(a) b else c, beware if b evals to False switch(x){ case(1){...} case("2"){...} // matches anything case(a)[fallthrough]{...} // no break, no break has to be explicit case(b){...} else {...} // case a C's default, has to be at the end }