Bird
Raised Fist0
Blockchain / Solidityprogramming~10 mins

If-else statements in Blockchain / Solidity - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - If-else statements
Start
↓
Evaluate Condition
↓
Execute If Block
↓
End If-Else
↓
Execute Else Block
↓
End If-Else
The program checks a condition. If true, it runs the 'if' part; if false, it runs the 'else' part.
Execution Sample
Blockchain / Solidity
if (balance >= amount) {
  send(amount);
} else {
  revert("Insufficient funds");
}
Checks if balance is enough to send amount; sends if yes, else stops with error.
Execution Table
StepCondition (balance >= amount)ResultBranch TakenAction
1balance=100, amount=50TrueIfsend(50) called
2balance=30, amount=50FalseElserevert("Insufficient funds") called
💡 Execution stops after either sending amount or reverting due to insufficient funds.
Variable Tracker
VariableStartAfter Step 1After Step 2
balance10010030
amount505050
Key Moments - 2 Insights
Why does the code run the else block when balance is less than amount?
Because the condition balance >= amount is false (see execution_table row 2), so the else branch runs.
What happens if the condition is true?
The if block runs and the send function is called (see execution_table row 1). The else block is skipped.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what action happens when balance is 100 and amount is 50?
ANothing happens
Brevert("Insufficient funds") is called
Csend(50) is called
DBoth send and revert are called
💡 Hint
Check execution_table row 1 where condition is true and if branch runs.
At which step does the condition become false?
AStep 2
BStep 1
CNever
DBoth steps
💡 Hint
Look at execution_table row 2 where condition is false.
If amount was 20 instead of 50 at step 2, what would happen?
AElse branch runs
BIf branch runs
CCode reverts anyway
DNo action taken
💡 Hint
Compare balance and amount in variable_tracker and condition in execution_table.
Concept Snapshot
If-else statements check a condition.
If true, run the 'if' block.
If false, run the 'else' block.
Used to control program flow based on conditions.
Syntax: if (condition) { ... } else { ... }
Full Transcript
This visual trace shows how if-else statements work in blockchain programming. The program checks if balance is enough to send an amount. If yes, it calls send(amount). If no, it calls revert with an error message. The execution table shows two steps: one where the condition is true and send is called, and one where the condition is false and revert is called. Variables balance and amount are tracked to see their values at each step. Key moments clarify why the else block runs when the condition is false and what happens when it is true. The quiz tests understanding of which branch runs based on the condition. The snapshot summarizes the if-else concept simply.

Practice

(1/5)
1.

What does an if-else statement do in a blockchain smart contract?

easy
A. It chooses between two actions based on a condition.
B. It repeats a set of instructions multiple times.
C. It stores data permanently on the blockchain.
D. It creates a new blockchain network.

Solution

  1. Step 1: Understand the role of if-else

    An if-else statement checks a condition and decides which code to run next.
  2. Step 2: Apply to blockchain context

    In smart contracts, it helps decide actions like approving transactions or rejecting them.
  3. Final Answer:

    It chooses between two actions based on a condition. -> Option A
  4. Quick Check:

    If-else = choose action [OK]
Hint: If-else picks one path out of two based on condition [OK]
Common Mistakes:
  • Confusing if-else with loops
  • Thinking if-else stores data
  • Believing if-else creates blockchains
2.

Which of the following is the correct syntax for an if-else statement in Solidity?

uint balance = 100;
easy
A. if (balance > 50) then { /* code */ } else { /* code */ }
B. if balance > 50 then { /* code */ } else { /* code */ }
C. if balance > 50: { /* code */ } else: { /* code */ }
D. if (balance > 50) { /* code */ } else { /* code */ }

Solution

  1. Step 1: Recall Solidity if-else syntax

    Solidity uses parentheses around conditions and braces for code blocks without 'then'.
  2. Step 2: Compare options

    Only if (balance > 50) { /* code */ } else { /* code */ } matches Solidity syntax: if (condition) { } else { }.
  3. Final Answer:

    if (balance > 50) { /* code */ } else { /* code */ } -> Option D
  4. Quick Check:

    Solidity if-else = parentheses + braces [OK]
Hint: Solidity if-else uses parentheses and braces, no 'then' [OK]
Common Mistakes:
  • Using 'then' keyword
  • Missing parentheses around condition
  • Using colons instead of braces
3.

What will be the output of this Solidity function when amount = 150?

function checkAmount(uint amount) public pure returns (string memory) {
  if (amount > 100) {
    return "Large amount";
  } else {
    return "Small amount";
  }
}
medium
A. Compilation error
B. "Small amount"
C. "Large amount"
D. No output

Solution

  1. Step 1: Check the condition with amount = 150

    Since 150 > 100, the if condition is true.
  2. Step 2: Determine which return runs

    The function returns "Large amount" because the if branch runs.
  3. Final Answer:

    "Large amount" -> Option C
  4. Quick Check:

    150 > 100 -> "Large amount" [OK]
Hint: Check condition value to pick correct return [OK]
Common Mistakes:
  • Confusing greater than with less than
  • Assuming else runs when if is true
  • Expecting syntax errors
4.

Find the error in this Solidity snippet:

function checkBalance(uint balance) public pure returns (string memory) {
  if balance > 0 {
    return "Positive";
  } else {
    return "Zero or Negative";
  }
}
medium
A. Missing parentheses around the if condition
B. Missing semicolon after return statements
C. Incorrect return type
D. Missing else keyword

Solution

  1. Step 1: Check if statement syntax

    In Solidity, the condition must be inside parentheses: if (condition).
  2. Step 2: Identify the error

    The code has if balance > 0 without parentheses, causing a syntax error.
  3. Final Answer:

    Missing parentheses around the if condition -> Option A
  4. Quick Check:

    if condition needs parentheses [OK]
Hint: Always put condition inside parentheses in if [OK]
Common Mistakes:
  • Omitting parentheses in if condition
  • Thinking semicolons are missing after return
  • Confusing return type errors
5.

You want to write a Solidity function that returns "Access granted" only if userRole is exactly "admin", otherwise returns "Access denied". Which code snippet correctly uses if-else to do this?

hard
A. if (userRole = "admin") { return "Access granted"; } else { return "Access denied"; }
B. if (userRole == "admin") { return "Access granted"; } else { return "Access denied"; }
C. if userRole == "admin" { return "Access granted"; } else { return "Access denied"; }
D. if (userRole.equals("admin")) { return "Access granted"; } else { return "Access denied"; }

Solution

  1. Step 1: Understand string comparison in Solidity

    Solidity uses == to compare strings for equality, not = or methods like equals().
  2. Step 2: Check syntax correctness

    if (userRole == "admin") { return "Access granted"; } else { return "Access denied"; } uses == with parentheses and braces correctly.
  3. Final Answer:

    if (userRole == "admin") { return "Access granted"; } else { return "Access denied"; } -> Option B
  4. Quick Check:

    Use == for string comparison in if [OK]
Hint: Use == to compare strings in Solidity if conditions [OK]
Common Mistakes:
  • Using single = instead of ==
  • Omitting parentheses in if
  • Using Java-style equals() method
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