# Problem Set: Logic

This section contains a number of selected problems for the Logic section.

It is recommended that you review the problems, and complete a few before moving on to the next section.

## Problem #1: This or That

Identify the output of the following snippet when `||variables:bool||` is

• `||logic:true||`
• `||logic:false||`
``````if (bool) {
console.log("This");
} else {
console.log("That");
}``````

## Problem #2: Boolean logic

Determine whether the following expressions evaluate to `||logic:true||` or `||logic:false||`.

Problem Expression Result
(a) `true` || `false`
(b) `true` || `true`
(c) `false` && `true`
(d) `false` && `false`
(e) `true` && `!true`
(f) `!false` || `!true`
(g) `!false` || `true`

## Problem #3: Mysterious Logging

Fill in the table below for the output of the following code based on the initial values of `||variables:bool1||` and `||variables:bool2||`. If multiple values are logged, use a slash `/` to separate the different lines. The case where `||variables:bool1||` and `||variables:bool2||` are both `||logic:true||` is filled in as an example.

`bool1 == true` `bool1 == false`
`bool2 == true` `2 / 3`
`bool2 == false`
``````if (bool1 && 10 > 4) {
if (!bool2) {
console.log("1");
} else {
console.log("2");
}
console.log("3");
} else {
if (6 > 8) {
console.log("4");
} else {
console.log("5");
}
}``````

## Problem #4: Rain or Shine

Translate the following statements into a program that `||game:splashes||` a clothing choice. Use a number variable `||variables:temp||` for the temperature and a boolean variable `||variables:isRaining||` for whether or not it is raining.

If the temperature is less than 30 degrees, then I wear my winter coat. Otherwise, if it is raining, I wear my rain jacket. In all other cases, I’ll just wear a sweatshirt.

## Problem #5: Implication

Create a boolean expression that generates the following results given boolean variables `||variables:a||` and `||variables:b||`.

`a` `b` Result
`true` `true` `true`
`true` `false` `false`
`false` `true` `true`
`false` `false` `true`