A quoi sert le retour en langage C ?

烟雨青岚
Libérer: 2020-07-03 11:10:45
original
5259 Les gens l'ont consulté

"return" est utilisé pour renvoyer le résultat obtenu en exécutant le code dans le corps de la fonction après l'appel de la fonction. La forme générale d'une instruction "return" est : "return expression ;" ; il peut y avoir plusieurs instructions "return", mais une seule instruction "return" peut être exécutée à chaque fois qu'une fonction est appelée, c'est-à-dire qu'il n'y en a qu'une seule. valeur de retour.

A quoi sert le retour en langage C ?

La valeur de retour d'une fonction fait référence au résultat obtenu en exécutant le code dans le corps de la fonction après l'appel de la fonction. via la déclaration de retour.

La forme générale de l'instruction return est : return expression;

ou : return (expression);

Il est correct qu'il y ait ( ) ou non. Par souci de simplicité, ( ) n'est généralement pas écrit. Par exemple :

return max;
return a+b;
return (100+200);
Copier après la connexion

Explication de la valeur de retour du langage C :

1) Une fonction sans valeur de retour est de type vide, représentée par void. Par exemple :

void func(){printf("http://c.biancheng.net\n");}
Copier après la connexion

Une fois que le type de valeur de retour d'une fonction est défini comme void, elle ne peut plus recevoir sa valeur.

Par exemple, l'instruction suivante est fausse : int a = func();

Afin de rendre le programme lisible et de réduire les erreurs, toute fonction qui ne nécessite pas de valeur de retour doit être définie comme type vide.

2) Il peut y avoir plusieurs instructions return, qui peuvent apparaître n'importe où dans le corps de la fonction, mais une seule instruction return peut être exécutée à chaque fois qu'une fonction est appelée, il n'y a donc qu'une seule valeur de retour (quelques programmation les langues prennent en charge plusieurs valeurs de retour, telles que la langue Go). Par exemple :

//返回两个整数中较大的一个
int max(int a, int b){
    if(a > b){
        return a;
    }else{
        return b;
    }
}
Copier après la connexion

Si a>b est vrai, return a sera exécuté, et return b ne sera pas exécuté s'il n'est pas vrai, return b sera exécuté et return a will ; ne soit pas exécuté.

3) Une fois que la fonction rencontre l'instruction return, elle reviendra immédiatement et toutes les instructions suivantes ne seront pas exécutées. De ce point de vue, l'instruction return a également pour fonction de mettre fin de force à l'exécution de la fonction. Par exemple :

//返回两个整数中较大的一个
int max(int a, int b){
    return (a>b) ? a : b;
    printf("Function is performed\n");
}
Copier après la connexion

Ci-dessous nous définissons une fonction pour déterminer les nombres premiers. Cet exemple est plus pratique :

#include <stdio.h>
int prime(int n){
    int is_prime = 1, i;
    //n一旦小于0就不符合条件,就没必要执行后面的代码了,所以提前结束函数
    if(n < 0){ return -1; }
    for(i=2; i<n; i++){
        if(n % i == 0){
            is_prime = 0;
            break;
        }
    }
    return is_prime;
}
int main(){
    int num, is_prime;
    scanf("%d", &num);
    is_prime = prime(num);
    if(is_prime < 0){
        printf("%d is a illegal number.\n", num);
    }else if(is_prime > 0){
        printf("%d is a prime number.\n", num);
    }else{
        printf("%d is not a prime number.\n", num);
    }
    return 0;
}
Copier après la connexion

prime() est une fonction utilisée pour trouver des nombres premiers. . Un nombre premier est un nombre naturel et sa valeur est supérieure ou égale à zéro. Une fois que la valeur transmise à prime() est inférieure à zéro, cela n'a plus de sens et on ne peut pas déterminer s'il s'agit d'un nombre premier. une fois que la valeur du paramètre n est détectée comme étant inférieure à 0, utilisez l'instruction return pour terminer plus tôt la fonction. L'instruction

return est le seul moyen de mettre fin à une fonction plus tôt. Return peut être suivi d'une donnée, indiquant que les données sont renvoyées en dehors de la fonction ; return peut également être suivi d'aucune donnée, indiquant que rien n'est renvoyé et n'est utilisé que pour terminer la fonction.

Modifiez le code ci-dessus pour que return ne soit suivi d'aucune donnée : #include

void prime(int n){
    int is_prime = 1, i;
    if(n < 0){
        printf("%d is a illegal number.\n", n);
        return;  //return后面不带任何数据
    }
    for(i=2; i<n; i++){
        if(n % i == 0){
            is_prime = 0;
            break;
        }
    }
    if(is_prime > 0){
        printf("%d is a prime number.\n", n);
    }else{
        printf("%d is not a prime number.\n", n);
    }
}
int main(){
    int num;
    scanf("%d", &num);
    prime(num);
    return 0;
}
Copier après la connexion

La valeur de retour de prime() est nulle, et return ne peut pas être suivi. Pour toute donnée, écrivez simplement un point-virgule directement.

Tutoriel recommandé : "Langage C"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!