Smarta blockkedjekontrakt med Solidity · Lektion

Kontrollstrukturer och loopar

Bemästra villkorssatser (if/else) och olika loopkonstruktioner (for, while) för dynamiskt kontraktsbeteende.

Lektion 2 av 412 steg

Kontrollstrukturer och loopar är en gratis lektion i Smarta blockkedjekontrakt med Solidity på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Smarta blockkedjekontrakt med Solidity, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Smarta blockkedjekontrakt med Solidity innehåller totalt 4 lektioner.

Introduktion till kontrollstrukturer

Välkommen till lektion 2! I dag lär vi oss om kontrollstrukturer i Solidity. De är viktiga för att göra dina smarta kontrakt dynamiska och responsiva.

Kontrollstrukturer låter ditt kontrakt:

  • Fatta beslut baserat på villkor.
  • Upprepa åtgärder flera gånger.
  • Exekvera olika kodvägar.

Tänk på dem som kontraktets ”hjärna”, som styr dess beteende.

Villkorssatser med ”if”

Den enklaste kontrollstrukturen är if-satsen. Den kör ett kodblock endast om ett angivet villkor är sant.

Villkoret måste utvärderas till en bool (sant eller falskt). Om det är sant körs koden inom klamrarna {}; annars hoppas den över.

'if-else' för alternativ

Ofta vill du utföra en åtgärd om ett villkor är sant och en annan åtgärd om det är falskt. Det är här if-else-satsen kommer in.

Om if-villkoret är sant körs dess block. Om det är falskt körs koden i else-blocket i stället. Endast ett av de två blocken körs.

'else if' för flera alternativ

Vad gör du om det finns fler än två möjliga utfall? Använd else if för att kontrollera flera villkor i tur och ordning.

Kontraktet kontrollerar varje villkor i ordning. Det första villkoret som utvärderas till sant får sitt kodblock kört, och alla efterföljande else if- och else-block hoppas över.

Exempel på villkorslogik

Vi ska se if-else if-else i praktiken. Det här kontraktet kontrollerar om ett tal är positivt, negativt eller noll.

Försök anropa checkNumber med olika heltalsvärden, till exempel 5, -3 eller 0.

pragma solidity ^0.8.0;

contract ConditionalChecker {
    function checkNumber(int _number) public pure returns (string memory) {
        if (_number > 0) {
            return "Positive";
        } else if (_number < 0) {
            return "Negative";
        } else {
            return "Zero";
        }
    }
}

Introduktion till loopar

Ibland behöver du upprepa ett kodblock flera gånger. Detta kallas loopning och är mycket effektivt!

Loopar är användbara för att:

  • Iterera över arrayer eller listor.
  • Utföra beräkningar flera gånger.
  • Vänta på att ett villkor ska uppfyllas.

Solidity tillhandahåller for- och while-loopar.

<code>for</code>-loopen

for-loopen passar perfekt när du vet exakt hur många gånger du vill upprepa en åtgärd. Den består av tre delar:

  • Initiering: Konfigurerar en räknare (t.ex. uint i = 0).
  • Villkor: Loopen fortsätter så länge detta är sant (t.ex. i < 10).
  • Ökning/minskning: Ändrar räknaren efter varje iteration (t.ex. i++).

Körbar <code>for</code>-loop

Här är ett exempel på en for-loop som beräknar summan av tal upp till en angiven gräns. Det visar hur ett värde kan ackumuleras över flera iterationer.

Försök anropa calculateSum med ett litet tal, till exempel 5.

pragma solidity ^0.8.0;

contract ForLoopDemo {
    // Calculates the sum of numbers from 1 up to _limit
    function calculateSum(uint _limit) public pure returns (uint) {
        uint total = 0;
        for (uint i = 1; i <= _limit; i++) {
            total += i;
        }
        return total;
    }
}

<code>while</code>-loopen

while-loopen är idealisk när du inte vet exakt hur många gånger loopen behöver köras, men har ett specifikt villkor som måste uppfyllas för att stoppa den.

Loopen fortsätter så länge dess villkor är sant. Var noga med att säkerställa att villkoret så småningom blir falskt, så att du undviker oändliga loopar!

Körbar <code>while</code>-loop

Det här exemplet visar en enkel nedräkning med en while-loop. Loopen fortsätter så länge currentCount är större än noll.

Anropa simpleCountdown med ett värde som 3. Den returnerar 0 när nedräkningen är klar.

pragma solidity ^0.8.0;

contract WhileLoopDemo {
    // Counts down from a starting number to zero
    function simpleCountdown(uint _start) public pure returns (uint) {
        uint currentCount = _start;
        while (currentCount > 0) {
            currentCount--; // Decrement counter
        }
        return currentCount; // Will be 0 when loop finishes
    }
}

Kontrollera dina kunskaper

Betrakta följande Solidity-kontraktsfunktion:

pragma solidity ^0.8.0;

contract ScoreChecker {
    function getStatus(uint _score) public pure returns (string memory) {
        if (_score >= 90) {
            return "Excellent";
        } else if (_score >= 70) {
            return "Good";
        } else if (_score >= 50) {
            return "Pass";
        } else {
            return "Fail";
        }
    }
}

Repetition: Kontrollstrukturer och loopar

Utmärkt arbete! Du har nu lärt dig grunderna i kontrollstrukturer och loopar i Solidity.

  • Villkorssatser (if, else if, else) gör att kontraktet kan fatta beslut.
  • Loopar (for, while) gör det möjligt att upprepa körningen av kodblock.

Dessa verktyg är avgörande när du bygger smarta kontrakt som kan reagera dynamiskt och utföra komplexa operationer. Nästa steg är att gå igenom funktioner och synlighetsmodifierare!

Gratis att börja

Lär dig Smarta blockkedjekontrakt med Solidity med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”Kontrollstrukturer och loopar” gratis?

Ja – hela texten till ”Kontrollstrukturer och loopar” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Smarta blockkedjekontrakt med Solidity, kan Ni uppgradera till CoddyKit PRO. Kursen i Smarta blockkedjekontrakt med Solidity innehåller totalt 4 lektioner.

Vad lär jag mig i ”Kontrollstrukturer och loopar”?

Bemästra villkorssatser (if/else) och olika loopkonstruktioner (for, while) för dynamiskt kontraktsbeteende. Ni övar på Smarta blockkedjekontrakt med Solidity med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Smarta blockkedjekontrakt med Solidity?

Du behöver inga förkunskaper. Utbildningen i Smarta blockkedjekontrakt med Solidity på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”Kontrollstrukturer och loopar”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Smarta blockkedjekontrakt med Solidity-lektionen?

Ja. Varje Smarta blockkedjekontrakt med Solidity-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Datatyper och variabler i Solidity
  2. Kontrollstrukturer och loopar
  3. Funktioner och synlighetsmodifierare
  4. Strukturer och enumtyper
← Tillbaka till Smarta blockkedjekontrakt med Solidity