Bird
Raised Fist0
Blockchain / Solidityprogramming~5 mins

If-else statements in Blockchain / Solidity

Choose your learning style10 modes available
Introduction

If-else statements help your program make choices. They let your code do different things depending on conditions.

Checking if a user has enough tokens to make a purchase.
Deciding if a transaction should be approved or rejected.
Verifying if a smart contract condition is met before executing.
Choosing different actions based on the current blockchain state.
Syntax
Blockchain / Solidity
if (condition) {
    // code to run if condition is true
} else {
    // code to run if condition is false
}
The condition is a check that results in true or false.
Use curly braces { } to group the code blocks clearly.
Examples
This checks if the balance is enough to buy something. If yes, it approves; if not, it rejects.
Blockchain / Solidity
if (balance >= price) {
    approvePurchase();
} else {
    rejectPurchase();
}
This checks if the user is the owner. Owners get access, others do not.
Blockchain / Solidity
if (isOwner) {
    allowAccess();
} else {
    denyAccess();
}
Sample Program

This smart contract checks if the balance is enough to buy an item. The buy function returns a message based on the check.

Blockchain / Solidity
pragma solidity ^0.8.0;

contract SimpleCheck {
    uint public balance = 100;
    uint public price = 50;

    function buy() public view returns (string memory) {
        if (balance >= price) {
            return "Purchase approved";
        } else {
            return "Purchase denied";
        }
    }
}
OutputSuccess
Important Notes

In blockchain smart contracts, if-else helps control what actions happen based on conditions.

Always test your conditions carefully to avoid unexpected results.

Summary

If-else lets your code choose between two paths.

Use it to check conditions and run different code accordingly.

It is very useful in blockchain for controlling transactions and permissions.

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