if (name.equals("Rumplestiltskin")) {
System.out.println("Give back child");
}
else {
System.out.println("Laugh");
}
This may not be written like this:
name.equals("Rumplestiltskin")
? System.out.println("Give back child")
: System.out.println("Laugh");
First of all, both the second and third arguments are void. Secondly,
no assignment is present to indicate the type that is expected
for the second and third arguments (though you know void must be wrong).
The first argument to the conditional operator
must have or return boolean type and the second and third arguments
must return values compatible with the value the entire expression
can be expected to return.
You can never use a void
method as an argument to the ? :
operator.