Hi - welcome back to the forums!
Let’s look at one of the
case statements from your code block, and break it down. We’ll use this line:
case let x where x % 2 == 0:
case - we know the
case keyword defines a possible scenario that our
switch is designed to handle.
let x - here we are doing what Swift refers to as “value binding”; we are using a temporary variable (
x) to hold the value we are considering in this case.
where x % 2 == 0 - in a case statement,
where allows you to expand the situations to which the
case applies. Here we are only interested in values of
x where we can divide it by 2 and have a 0 remainder. (We are using the remainder
% operator, which you can read more about here.)
So, our first case -
case let x where x % 2 == 0: - deals with values of
randomNumber which are even. We are taking
randomNumber, putting it temporarily into the variable
x, and then checking that its remainder (the
% operator) is equal to 0 by using the equality (“equal to”) operator
Similarly, in our second case -
case let x where x % 2 == 1: - we are taking
randomNumber and putting it temporarily into the variable
x, then checking to see if its remainder is 1.
Does that help at all?