Bird
Raised Fist0
C++programming~10 mins

Return inside loops in C++ - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Return inside loops
Start function
↓
Enter loop
↓
Check condition
Yes↓
Execute loop body
↓
Return encountered?
Yes→Exit function immediately
No↓
Next iteration
Back to Check condition↓
Exit loop
↓
Return at end of function
↓
Function ends
↩Back to Check condition
The function starts and enters a loop. If a return statement is hit inside the loop, the function exits immediately. Otherwise, the loop continues until its condition fails, then the function returns at the end.
Execution Sample
C++
int findFirstEven(int arr[], int size) {
  for (int i = 0; i < size; i++) {
    if (arr[i] % 2 == 0) return arr[i];
  }
  return -1;
}
This function returns the first even number found in the array or -1 if none is found.
Execution Table
Stepiarr[i] % 2 == 0?ActionReturn ValueNotes
103 % 2 == 1 (False)Continue loopNoneNo return, loop continues
217 % 2 == 1 (False)Continue loopNoneNo return, loop continues
324 % 2 == 0 (True)Return arr[2]4Function exits immediately
-----Function ends, no further steps
💡 Return executed at step 3 inside loop, function exits immediately
Variable Tracker
VariableStartAfter 1After 2After 3Final
i-0122
Return ValueNoneNoneNone44
Key Moments - 2 Insights
Why does the function stop immediately when return is inside the loop?
Because return exits the entire function right away, not just the loop. See execution_table step 3 where return causes immediate exit.
What happens if no element satisfies the condition inside the loop?
The loop finishes all iterations without returning, then the return after the loop runs. This is shown by the exit_note and the last return statement.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of i when the function returns?
A2
B1
C0
D3
💡 Hint
Check the 'i' column at the step where 'Return Value' is set in the execution_table
At which step does the function exit due to the return statement inside the loop?
AStep 1
BStep 2
CStep 3
DAfter loop ends
💡 Hint
Look at the 'Action' and 'Return Value' columns in the execution_table
If the array had no even numbers, what would the function return?
AThe first element
B-1
C0
DIt would not return
💡 Hint
Check the last return statement after the loop in the code and the key_moments explanation
Concept Snapshot
Return inside loops:
- A return inside a loop exits the entire function immediately.
- Loop stops running once return is hit.
- If no return inside loop, function continues after loop.
- Useful to find and return first matching item quickly.
- Remember: return ends function, not just loop.
Full Transcript
This example shows a function that searches an array for the first even number. It loops through each element, checking if it is even. When it finds one, it returns that number immediately, ending the function. If no even number is found, it returns -1 after the loop. The execution table traces each step, showing the loop index, condition check, and when the return happens. The variable tracker shows how 'i' and the return value change. Key moments clarify why the function exits immediately on return inside the loop and what happens if no return occurs inside the loop. The quiz tests understanding of when and why the function returns. The snapshot summarizes the key points about return inside loops.

Practice

(1/5)
1.

What happens when a return statement is executed inside a loop in a C++ function?

easy
A. The loop runs twice before the function stops.
B. Only the current loop iteration stops, and the loop continues.
C. The function immediately stops and returns the value.
D. The loop skips to the next iteration without stopping the function.

Solution

  1. Step 1: Understand the role of return in functions

    The return statement immediately ends the function and sends back a value.
  2. Step 2: Analyze return inside a loop

    When return is inside a loop, it stops the entire function, not just the loop.
  3. Final Answer:

    The function immediately stops and returns the value. -> Option C
  4. Quick Check:

    Return inside loop = function stops [OK]
Hint: Return inside loop ends function immediately [OK]
Common Mistakes:
  • Thinking return only stops the loop
  • Confusing return with continue or break
  • Assuming code after return runs
2.

Which of the following is the correct syntax to return the first even number found in a vector nums using a loop?

for (int i = 0; i < nums.size(); i++) {
    if (nums[i] % 2 == 0) {
        // return here
    }
}
easy
A. return nums[i];
B. return i;
C. return nums;
D. return i + 1;

Solution

  1. Step 1: Identify what to return

    The question asks to return the first even number, so we return the value at index i.
  2. Step 2: Match the correct return statement

    return nums[i]; returns the actual even number found.
  3. Final Answer:

    return nums[i]; -> Option A
  4. Quick Check:

    Return value, not index [OK]
Hint: Return the value, not the index, when asked for element [OK]
Common Mistakes:
  • Returning the index instead of the value
  • Returning the whole vector
  • Returning incorrect arithmetic on index
3.

What is the output of the following C++ function when called with findFirstPositive({-3, -1, 0, 4, 5})?

int findFirstPositive(std::vector<int> nums) {
    for (int i = 0; i < nums.size(); i++) {
        if (nums[i] > 0) {
            return nums[i];
        }
    }
    return -1;
}
medium
A. -1
B. 4
C. 0
D. 5

Solution

  1. Step 1: Trace the loop to find first positive

    The loop checks each element: -3 (no), -1 (no), 0 (no), 4 (yes, positive).
  2. Step 2: Return the first positive number found

    At 4, the function returns immediately with 4.
  3. Final Answer:

    4 -> Option B
  4. Quick Check:

    First positive = 4 [OK]
Hint: Return stops at first positive number found [OK]
Common Mistakes:
  • Returning -1 instead of first positive
  • Confusing 0 as positive
  • Returning last positive instead of first
4.

Identify the error in this function that tries to return the first negative number from a vector nums:

int findNegative(std::vector<int> nums) {
    for (int i = 0; i < nums.size(); i++) {
        if (nums[i] < 0) {
            return nums[i];
        } else {
            return 0;
        }
    }
    return -1;
}
medium
A. The loop condition is incorrect.
B. The function never returns any value.
C. The return type should be void.
D. The function returns 0 too early inside the loop.

Solution

  1. Step 1: Analyze the else return inside the loop

    The else block returns 0 immediately if the first element is not negative, stopping the function early.
  2. Step 2: Understand why this is wrong

    This prevents checking all elements; function should only return 0 after full loop if no negative found.
  3. Final Answer:

    The function returns 0 too early inside the loop. -> Option D
  4. Quick Check:

    Return in else inside loop causes early stop [OK]
Hint: Avoid return in else inside loop; return after loop instead [OK]
Common Mistakes:
  • Returning inside else causes premature exit
  • Thinking loop runs fully before return
  • Misunderstanding return type requirements
5.

Write a function that returns the index of the first zero in a vector nums. If no zero is found, return -1. Which of the following implementations is correct?

Option A:
int findZero(std::vector<int> nums) {
    for (int i = 0; i < nums.size(); i++) {
        if (nums[i] == 0) {
            return i;
        }
    }
    return -1;
}

Option B:
int findZero(std::vector<int> nums) {
    int index = -1;
    for (int i = 0; i < nums.size(); i++) {
        if (nums[i] == 0) {
            index = i;
        }
    }
    return index;
}

Option C:
int findZero(std::vector<int> nums) {
    for (int i = 0; i < nums.size(); i++) {
        if (nums[i] == 0) {
            break;
        }
    }
    return i;
}

Option D:
int findZero(std::vector<int> nums) {
    for (int i = 0; i < nums.size(); i++) {
        if (nums[i] == 0) {
            return nums[i];
        }
    }
    return -1;
}
hard
A. Option A
B. Option B
C. Option C
D. Option D

Solution

  1. Step 1: Verify the correct logic for finding first zero index

    The implementation that returns i immediately when nums[i] == 0 and -1 after the loop is correct.
  2. Step 2: Why others fail

    The one setting a variable continues the loop, returning the last zero's index. The break version doesn't return -1 if no zero found and i goes out of scope. The last returns the value 0 instead of index.
  3. Final Answer:

    Option A -> Option A
  4. Quick Check:

    Return index immediately on first zero [OK]
Hint: Return index immediately when found, else after loop return -1 [OK]
Common Mistakes:
  • Returning value instead of index
  • Returning last zero index instead of first
  • Using break without returning causes scope errors
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard