In this video, we're going to execute code with a function g that contains a switch case statement. As always, we begin with the execution arrow at the start of main for the statement a = g(10, 4);. We make a box per a since we're declaring it, then we create a frame for the function g, and populate it with the values 10 for n and 4 for x. We make a note of where we are and we'll return to when the function is complete, and enter function g. We have the switch statement x + n in this case is 4 + 10 which is 14. So we find the matching case label, case 14 and transition our execution arrow inside that case and begin executing statements there. The first statement we encounter is the return statement n- x, 10- 4 = 6. As always when we encounter a return statement, we're going to make a note of the value to return and leave the function that we're in going back to the calling function and destroying the frame. We finished the assignment statement with a = 6. Now we reach int b = g(a, 2). So we create a box for b, draw a frame for g, passing in the arguments a, which is 6 and 2. We note our position and enter function g. Here, our selection expression is 2 + 6, which is 8, so we're going to go into the case for 8 and begin executing statements there. The first statement we encounter is x = x + 1, so we update the box for x to have 3 instead of 2. Now we fall through to the next case. There is no break statement here, and we don't worry about the fact that there is another case label. We just keep executing statements until we reach a break. The next statement is n = n- 1. So we're going to update the value of n to be 5. And now we do reach a break statement. This break statement is going to take us out of the innermost enclosing switch statement, the boundaries which are here. As we'll see later, break could take us out of other constructs. But in this case, it'll take us out of the switch statement that encloses it and we begin executing code after the switch. The next statement we encounter says to return x * n, which is 3 * 5, which is 15. So we return 15, return to main, and destroy the frame for g and assign 15 to b. Now we have int c = g(9, b). So we create a box for c, a frame for g with arguments 9 and b which is 15 and note where we are and enter function g. Evaluating this expression gives us 24. Looking at our case labels, we have 8, 0, and 14. None of those match 24, so we use the default which matches anything that's not named explicitly by another case label. We'll jump into the default case and begin executing statements there. We do x = n, assigning 9 to x which brings us to a break which takes us out of the inside of the switch statement. We now return x * n which is 81. Back to main, we finish our assignment and return zero from main exiting the program.