Bird
Raised Fist0
Blockchain / Solidityprogramming~10 mins

For and while loops in Blockchain / Solidity - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - For and while loops
Start
↓
Initialize loop variable
↓
Check loop condition
↓
Execute loop body
↓
Update loop variable
↓
Check loop condition
Loops start by setting a variable, then check a condition. If true, they run the loop body and update the variable, repeating until the condition is false.
Execution Sample
Blockchain / Solidity
for (uint i = 0; i < 3; i++) {
    emit Log(i);
}

uint j = 0;
while (j < 3) {
    emit Log(j);
    j++;
}
This code runs a for loop and a while loop, each emitting a log with numbers 0 to 2.
Execution Table
StepLoop TypeVariableConditionActionOutput
1fori=00 < 3 (true)emit Log(0)0
2fori=11 < 3 (true)emit Log(1)1
3fori=22 < 3 (true)emit Log(2)2
4fori=33 < 3 (false)exit loop
5whilej=00 < 3 (true)emit Log(0), j++0
6whilej=11 < 3 (true)emit Log(1), j++1
7whilej=22 < 3 (true)emit Log(2), j++2
8whilej=33 < 3 (false)exit loop
💡 Loops stop when the condition becomes false (i or j reaches 3).
Variable Tracker
VariableStartAfter 1After 2After 3Final
iundefined0123
j01233
Key Moments - 3 Insights
Why does the for loop stop when i equals 3?
Because the condition i < 3 becomes false at i=3, so the loop exits as shown in execution_table row 4.
Why do we update the variable inside the while loop body?
In the while loop, the variable j is increased inside the loop body to eventually make the condition false, shown in rows 5-7.
Are the outputs from for and while loops the same here?
Yes, both loops emit logs with 0, 1, and 2, as seen in the Output column of the execution_table.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of i at step 3?
A2
B3
C1
D0
💡 Hint
Check the Variable column for i at step 3 in the execution_table.
At which step does the while loop condition become false?
AStep 7
BStep 8
CStep 6
DStep 5
💡 Hint
Look at the Condition column for the while loop in execution_table rows 5-8.
If we change the for loop condition to i < 2, how many times will it run?
A3 times
B1 time
C2 times
D0 times
💡 Hint
Refer to the condition i < 3 in the execution_table and imagine changing 3 to 2.
Concept Snapshot
For and while loops repeat code while a condition is true.
For loop: initialize; check condition; run body; update variable.
While loop: check condition; run body; update variable inside.
Loops stop when condition is false.
Use loops to repeat tasks easily.
Full Transcript
This lesson shows how for and while loops work in blockchain programming. Both loops start by checking a condition. The for loop initializes a variable, checks if it is less than 3, runs the loop body emitting a log, then increases the variable. This repeats until the variable reaches 3, then the loop stops. The while loop starts with a variable at 0, checks if it is less than 3, runs the loop body emitting a log and increasing the variable inside the loop. It repeats until the variable reaches 3, then stops. The execution table shows each step with variable values, conditions, actions, and outputs. The variable tracker shows how variables i and j change over time. Key moments explain why loops stop and how variables update. The quiz asks about variable values and loop behavior based on the tables. The snapshot summarizes the loop structure and use.

Practice

(1/5)
1. Which statement best describes a for loop in blockchain programming?
easy
A. It repeats code while a condition is true.
B. It runs only once and then stops.
C. It repeats code a fixed number of times.
D. It stops the program immediately.

Solution

  1. Step 1: Understand the for loop purpose

    A for loop is designed to repeat code a set number of times, often counting through a range or list.
  2. Step 2: Compare with other loop types

    A while loop repeats while a condition is true, not a fixed count. The other options do not describe for loops correctly.
  3. Final Answer:

    It repeats code a fixed number of times. -> Option C
  4. Quick Check:

    for loop = fixed repeats [OK]
Hint: For loops count repeats; while loops check conditions [OK]
Common Mistakes:
  • Confusing for loops with while loops
  • Thinking for loops run only once
  • Believing for loops stop the program
2. Which of the following is the correct syntax for a while loop in blockchain programming?
easy
A. while (condition) { // code }
B. while condition: // code
C. while condition { // code }
D. while (condition): // code

Solution

  1. Step 1: Identify correct syntax style

    In blockchain programming languages like Solidity, the while loop uses parentheses for the condition and curly braces for the code block.
  2. Step 2: Check each option

    while (condition) { // code } matches the correct syntax: while (condition) { // code }. Others miss parentheses or use incorrect punctuation.
  3. Final Answer:

    while (condition) { // code } -> Option A
  4. Quick Check:

    Correct while syntax uses parentheses and braces [OK]
Hint: Remember: while(condition) { code } uses parentheses and braces [OK]
Common Mistakes:
  • Omitting parentheses around condition
  • Using colon instead of braces
  • Mixing syntax from other languages
3. What will be the output of this code snippet?
uint sum = 0;
for (uint i = 1; i <= 3; i++) {
sum += i;
}
return sum;
medium
A. 6
B. 3
C. 0
D. Error

Solution

  1. Step 1: Analyze the loop iterations

    The loop runs with i = 1, 2, 3. Each time, sum adds i: sum = 0+1, then 1+2, then 3+3.
  2. Step 2: Calculate the final sum

    Sum after loop: 0+1=1, 1+2=3, 3+3=6.
  3. Final Answer:

    6 -> Option A
  4. Quick Check:

    1+2+3 = 6 [OK]
Hint: Add numbers from 1 to 3 to get sum quickly [OK]
Common Mistakes:
  • Stopping loop early
  • Adding wrong values
  • Confusing sum initialization
4. Identify the error in this code snippet:
uint i = 0;
while (i < 3)
i++;
medium
A. Condition should be i <= 3
B. Missing braces {} for while loop body
C. Variable i should start at 1
D. Incorrect increment operator

Solution

  1. Step 1: Check loop body syntax

    The while loop lacks braces {}, so only the next statement is inside the loop.
  2. Step 2: Understand impact of missing braces

    Without braces, the loop runs only the single statement i++;. This is valid but can cause confusion or errors if more statements are added.
  3. Final Answer:

    Missing braces {} for while loop body -> Option B
  4. Quick Check:

    Always use braces for clarity in loops [OK]
Hint: Use braces {} to clearly define loop body [OK]
Common Mistakes:
  • Assuming multiple statements run without braces
  • Changing variable start unnecessarily
  • Altering loop condition wrongly
5. You want to create a loop that counts down from 5 to 1 and stores each number in an array. Which code snippet correctly uses a for loop to do this in blockchain programming?
A) for (uint i = 5; i > 0; i--) { arr.push(i); }
B) for (uint i = 1; i <= 5; i++) { arr.push(i); }
C) for (uint i = 5; i >= 1; i++) { arr.push(i); }
D) for (uint i = 5; i > 0; i++) { arr.push(i); }
hard
A. Infinite loop due to i++ with i > 0
B. Counts up from 1 to 5
C. Infinite loop due to i++ with i >= 1
D. Counts down from 5 to 1 correctly

Solution

  1. Step 1: Analyze each loop's counting direction

    Counts down from 5 to 1 correctly counts down from 5 to 1 using i-- and condition i > 0. Counts up from 1 to 5 counts up. Options C and D increase i but have conditions that cause infinite loops.
  2. Step 2: Confirm correct loop behavior

    Counts down from 5 to 1 correctly correctly pushes 5,4,3,2,1 into the array and stops when i reaches 0.
  3. Final Answer:

    Counts down from 5 to 1 correctly -> Option D
  4. Quick Check:

    Decrement i with i-- and condition i > 0 for countdown [OK]
Hint: Use i-- and i > 0 to count down safely [OK]
Common Mistakes:
  • Using i++ when counting down
  • Wrong loop condition causing infinite loops
  • Confusing counting up vs down
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