Now, let's see how to execute code with conditional statements in it. Here, we have a function f which has some if and if else statements. As always, our program starts its execution at the beginning of main. The first statement declares a variable a, so we make a box for it. Even though this statement initializes a, it's going to take us several steps to compute that value, so we're going to leave a's value as a question mark until we compute the value of f of 3, 4. To evaluate the call to f, we make a frame passing the values of the parameters. We know where to return to and move the execution arrow to the first line of f. The next line of code is an if statement whose conditional expression is x less than y. We evaluate that expression and find that three less than four is true, so we move the execution arrow into the then clause of this if statement and continue executing. The next statement is a call to print f, which you are familiar with. We write x less than y in our output. Next, we return y plus x. This follows the same rules you have already learned for return statements. We evaluate the expression to get the return value which is seven. This is what the function call will evaluate to. And now, we return back to the caller, destroying the frame for f. Now, we are ready to finish initializing a since we know that the call of f evaluated to seven. So a is now seven. We are now ready for the next line of code in main. We make a box for b and call f, passing in seven and five. We once again want to evaluate the condition, x less than y. However, now, x is seven and y is five, so x less than five is false. We find the close curly brace for this if statement and see that the if statement has an else clause. So we move the execution arrow into the start of the else clause and continue executing from there. First, we execute the print statement, and then we reach another if statement. This if statement is nested inside of the else, but that does not affect the rules of how we evaluate it. We see that the conditional expression is false, so we look for the close curly brace of the if statement. There is no else clause, so we move the execution arrow immediately past the close curly brace and continue execution. There are no more statements inside the else clause, so we move the execution arrow outside of the else clause and keep going. Now, we have a return statement so we evaluate the expression, x minus two, to find that the return value is five, which will get returned to the place that we have noted. We return back to the main and destroy the frame for f, then we finish the assignment statement. Now, we are at the return statement from main, we execute that, and exit the program.