Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

Recursie in C: Best Practices & Exit Condities

Recursie is het proces van het herhalen van items op een zelfvergelijkende manier. In programmeertalen, als een programma je toestaat om een functie binnen dezelfde functie aan te roepen, dan heet dat een recursieve aanroep van de functie.

void recursie() {
    recursie(); /* functie roept zichzelf aan */
}
int main() {
    recursie();
}

De C-programmeertaal ondersteunt recursie, d.w.z. een functie die zichzelf aanroept. Maar bij het gebruik van recursie moeten programmeurs voorzichtig zijn om een exit conditie te definiëren vanuit de functie, anders zal het in een oneindige lus gaan.

Recursieve functies zijn erg nuttig om veel wiskundige problemen op te lossen, zoals het berekenen van de faculteit van een getal, het genereren van de Fibonacci-reeks, etc.

Getal Faculteit

Het volgende voorbeeld berekent de faculteit van een gegeven getal met behulp van een recursieve functie:

Live Demo
#include <stdio.h>
unsigned long long int faculteit(unsigned int i) {
    if(i <= 1) {
        return 1;
    }
    return i * faculteit(i - 1);
}
int main() {
    int i = 12;
    printf("Faculteit van %d is %d\n", i, faculteit(i));
    return 0;
}

Wanneer de bovenstaande code wordt gecompileerd en uitgevoerd, produceert het het volgende resultaat:

Faculteit van 12 is 479001600

Fibonacci Reeks

Het volgende voorbeeld genereert de Fibonacci-reeks voor een gegeven getal met behulp van een recursieve functie:

Live Demo
#include <stdio.h>
int fibonacci(int i) {
    if(i == 0) {
        return 0;
    }
    if(i == 1) {
        return 1;
    }
    return fibonacci(i-1) + fibonacci(i-2);
}
int main() {
    int i;
    for (i = 0; i < 10; i++) {
        printf("%d\t\n", fibonacci(i));
    }
    return 0;
}

Wanneer de bovenstaande code wordt gecompileerd en uitgevoerd, produceert het het volgende resultaat:

0
1
1
2
3
5
8
13
21
34

C Taal

  1. C# Hello World – Uw eerste C# applicatie bouwen
  2. C# Keywords en Identifiers begrijpen: Regels, lijsten en best practices
  3. C# Variabelen & Primitive Datatypes onder de knie krijgen: Complete gids
  4. C# Operators – Uitgebreide gids voor operators in C#
  5. C# Bitwise en Bit Shift Operators: Een Uitgebreide Gids
  6. C# Fundamentals: Invoer en Uitvoer Basis
  7. C# Expressies, Statements & Blokken: Uitgebreide Gids met Praktische Voorbeelden
  8. C# Comments Onder de Loep: Types, Best Practices en XML Documentatie
  9. C# Break Statement: Hoe en Wanneer Te Gebruiken
  10. C# Continue Statement: Effectief Lusiteraties Overslaan
  11. C# Arrays: Declaratie, Initialisatie en Operaties