Bird
Raised Fist0
Blockchain / Solidityprogramming~20 mins

For and while loops in Blockchain / Solidity - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Loop Mastery in Blockchain
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of a for loop in a smart contract
What is the output of this Solidity code snippet when the function sumUpToFive() is called?
Blockchain / Solidity
pragma solidity ^0.8.0;
contract LoopTest {
    function sumUpToFive() public pure returns (uint) {
        uint sum = 0;
        for (uint i = 1; i <= 5; i++) {
            sum += i;
        }
        return sum;
    }
}
A0
B10
C5
D15
Attempts:
2 left
💡 Hint
Add numbers from 1 to 5 using a loop.
❓ Predict Output
intermediate
2:00remaining
While loop behavior in a blockchain contract
What will be the value of counter after calling countDown() in this Solidity contract?
Blockchain / Solidity
pragma solidity ^0.8.0;
contract LoopCountdown {
    function countDown() public pure returns (uint) {
        uint counter = 5;
        while (counter > 0) {
            counter--;
        }
        return counter;
    }
}
A1
B0
C5
DUndefined behavior
Attempts:
2 left
💡 Hint
The loop decreases counter until it is no longer greater than zero.
🔧 Debug
advanced
2:00remaining
Identify the error in this for loop
This Solidity function is intended to sum numbers from 1 to 3, but it causes a compilation error. What is the cause?
Blockchain / Solidity
pragma solidity ^0.8.0;
contract LoopError {
    function sumThree() public pure returns (uint) {
        uint sum = 0;
        for (uint i = 1; i < 4; i++)
            sum += i;
        return sum;
    }
}
AMissing semicolon after sum += i
BReturn statement inside the loop
CVariable i is not declared
DIncorrect loop condition syntax
Attempts:
2 left
💡 Hint
Check punctuation after statements inside the loop.
❓ Predict Output
advanced
2:00remaining
Output of nested loops in a smart contract
What is the output of the nestedSum() function below?
Blockchain / Solidity
pragma solidity ^0.8.0;
contract NestedLoops {
    function nestedSum() public pure returns (uint) {
        uint total = 0;
        for (uint i = 1; i <= 2; i++) {
            for (uint j = 1; j <= 3; j++) {
                total += i * j;
            }
        }
        return total;
    }
}
A9
B12
C18
D6
Attempts:
2 left
💡 Hint
Multiply i and j for each pair and add all results.
🧠 Conceptual
expert
2:00remaining
Gas cost implications of loops in blockchain
Which statement best describes the gas cost behavior of loops in Ethereum smart contracts?
AGas cost increases linearly with the number of loop iterations
BLoops do not consume gas in smart contracts
CGas cost decreases as loops run longer due to optimization
DGas cost is fixed regardless of loop iterations
Attempts:
2 left
💡 Hint
Think about how Ethereum charges for computation steps.

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