This is similar to the conditional operator in C, it can be imagined to be an abbreviated if-else. The conditional expression is evaluated in the same way, if it evaluates to true the true_expression is evaluated else the false_expression.
Syntax: conditional_expression ? true_expression : false_expression
To illustrate the conditional operator consider the implementation of a 2 to 1 multiplexor below:
assign out = control ? in2 : in1;
EXERCISE
Implement a 4 to 1 multiplexor using a nested conditonal operator, making sure it uses the same simulation block as before