I need a diagram. this doesn’t make any sense to me

So you’re starting with 4 variables.

```
let scoreOfAlan = 5;
let scoreOfJudy = 3;
let foulsCommittedByJudy = 1;
let foulsCommittedByAlan = 2;
```

Then, the condition on the first `if`

is true, because `foulsCommittedByJudy`

has a value of 1 which is bigger than 0:

```
if (foulsCommittedByJudy > 0) // condition is true
```

Which means the line of code inside the `if`

is executed:

```
scoreOfJudy = scoreOfJudy - foulsCommittedByJudy;
```

In this line, `scoreOfJudy`

is set with a new value; Which is the current value (**3**) minus the value of `foulsCommittedByJudy`

(**1**). So the new value of `scoreOfJudy`

is 2.

And like in the first `if`

, the condition on the second one is true, because `foulsCommittedByAlan`

has a value of 2 which is bigger than 0:

```
if (foulsCommittedByAlan > 0) // condition is true
```

Which means the line of code inside this `if`

is executed as well:

```
scoreOfAlan = scoreOfAlan - foulsCommittedByAlan;
```

`scoreOfAlan`

is set with a new value; Which is the current value (**5**) minus the value of `foulsCommittedByAlan`

(**2**). So the new value of `scoreOfAlan`

is 3.

the if block resets the value of scoreOfAlan and then executes with the new value?

if the question was looking for the number 2, the answer would be scoreOfJudy?

if I am understanding the logic correctly?

The `if`

block doesn’t reset the value; It checks for a condition (which is inside parentheses). Then, if the condition is true (or truthy), the line of code inside the `if`

block is executed (between the curly brackets). If the condition is false (or falsy), the statement is not executed. So in our case:

```
if (foulsCommittedByJudy > 0) {
scoreOfJudy = scoreOfJudy - foulsCommittedByJudy;
}
```

The condition inside the parentheses is like a question. It asks: “does the current value of `committedByJudy`

is bigger than 0?”

Because the value of `committedByJudy`

is `1`

, the condition evaluates as `true`

; and the line inside the `if`

block is executed. in our case it’s `scoreOfJudy = scoreOfJudy - foulsCommittedByJudy;`

.

This line is the one that sets a new value to `scoreOfJudy`

, Which is the current value ( **3** ) minus the value of `foulsCommittedByJudy`

( **1** ). So the new value of `scoreOfJudy`

is 2.

The same goes for the second `if`

block. So yes, if the question was looking for the number 2, the answer would be `scoreOfJudy`

.

For more info on `if...else`

statements, I recommend maybe repeating the lesson on Codecademy, or check out MDN.