Valeurs de retour
Écrivez une méthode nommée twice qui prend un int nommé n et renvoie le double de ce nombre. L'en-tête commence par int, pas void : static int twice(int n). Entre les accolades écrivez return n * 2;. Dans Main, écrivez le résultat de l'appel : Console.WriteLine(twice(7));. L'écran doit montrer une ligne : 14. twice elle-même n'appelle pas WriteLine. Elle ne fait que renvoyer 14. Main écrit ce nombre. Ce renvoi est ce que cette page enseigne. Gardez la classe publique nommée Pine.
Renvoyer un nombre à Main
Sur la page des paramètres, greet et show écrivaient dans le corps de la méthode. L'appel envoyait une valeur, et la méthode écrivait à l'écran. Ici la méthode reçoit encore une valeur, mais elle envoie aussi une valeur vers l'extérieur. Le mot return marque cette valeur sortante. Main peut la stocker ou l'écrire.
Ouvrez le fichier Pine. Le nom de la classe reste Pine. Cette page ne renomme pas le type. Supprimez toute démo greet qui n'écrit que hi lena dans la méthode si c'est encore tout ce que Main contient. Supprimez tout reste de ring();. Supprimez toute ligne ReadLine. Le fichier que vous gardez n'attend pas de saisie.
Hors de Main, toujours dans les accolades de la classe, l'en-tête dit int parce que la valeur qui revient est un int. Entre les parenthèses, int n est encore un paramètre — même idée que la page précédente. Le corps a une instruction : return n * 2;. Cela multiplie n par 2 et renvoie le produit à celui qui a appelé twice. Il n'y a pas de Console.WriteLine dans twice sur cette page. Enregistrez le fichier avant de lancer. Le premier programme complet est dans le cadre suivant.
Le fichier que vous gardez
Voici le petit programme complet. twice calcule. Main écrit.
using System;
public class Pine
{
public static void Main()
{
Console.WriteLine(twice(7));
}
static int twice(int n)
{
return n * 2;
}
}
Lisez-le du haut. using System; prépare les noms courts. public class Pine nomme le type. public static void Main() est là où le runtime démarre. L'appel twice(7) envoie 7 dans n. static int twice(int n) tient return n * 2;. Console.WriteLine écrit la valeur qui est revenue. Une ligne à l'écran : 14.
Lancez avec dotnet run. Le programme écrit une ligne et s'arrête. Il n'attend pas que vous tapiez. Si dotnet run attend, ReadLine est encore dans le fichier. Supprimez cette ligne et gardez Console.WriteLine(twice(7)); plus la méthode twice ci-dessus. L'écran montre 14. Si l'écran montre hi lena, un appel greet restant tourne encore. Si l'écran montre les lettres twice, une ligne d'écriture a des guillemets autour de ce mot : Console.WriteLine("twice");. Vous ne réinstallez pas le SDK .NET pour un écran qui montre la mauvaise ligne.
Parcourez un lancement complet dans l'ordre. C# démarre à Main. L'appel twice(7) envoie 7 dans n. Dans twice, return n * 2; calcule 14 et renvoie ce 14 à Main. Puis WriteLine écrit 14. twice n'a jamais écrit à l'écran toute seule. Si vous changez l'appel en twice(3), l'écran doit montrer 6. Le corps de la méthode reste le même ; seul l'argument change, et le produit renvoyé change avec lui. Si l'écran montre 7 au lieu de 14, vous avez écrit n dans twice ou écrit l'argument dans Main sans appeler twice — mettez le double sur la ligne return et écrivez le résultat de l'appel.
La séparation importante est qui parle à l'écran. Sur cette page, twice ne parle qu'à Main via return. Main parle à l'écran via WriteLine. C'est pourquoi l'en-tête ne peut plus dire void : quelque chose doit revenir pour que Main l'écrive. Quand vous stockez d'abord le résultat dans result, vous utilisez encore le même renvoi ; vous ne faites que retarder l'écriture d'une ligne.
Écrire la valeur que Main a reçue
Vous pouvez aussi garder la valeur renvoyée dans un nom dans Main avant d'écrire. Changez seulement le nombre dans l'appel si vous voulez une autre ligne à l'écran. Laissez return n * 2; tranquille.
using System;
public class Pine
{
public static void Main()
{
int result = twice(7);
Console.WriteLine(result);
}
static int twice(int n)
{
return n * 2;
}
}
Voici le deuxième fichier. Il enseigne le même return avec un nom stocké. Lancez dotnet run. Cela montre encore une ligne : 14. L'appel se termine d'abord et remplit result. Puis WriteLine écrit result. Les deux formes — écrire l'appel directement, ou stocker puis écrire — utilisent le même return de twice. twice(0) doit écrire 0. twice(10) doit écrire 20. Chaque fois Main écrit ce que twice a renvoyé. Après avoir vu la forme stockée, remettez le fichier à un appel sur une ligne si c'est la forme que vous voulez garder : Console.WriteLine(twice(7)); dans Main.
Si twice dit encore void dans l'en-tête alors que le corps a return n * 2;, la compilation écrit une erreur — void signifie que rien ne revient, donc un return avec une valeur ne convient pas. Si l'en-tête dit int mais le corps n'a pas de return, la compilation écrit aussi une erreur — une méthode int doit renvoyer un int sur cette forme débutante. Si le corps écrit et ne renvoie jamais, vous êtes revenus à l'idée de la page des paramètres ; cette page veut le nombre dans les mains de Main.
void versus un return typé
Lisez les deux formes côte à côte. Une méthode void exécute son corps et se termine. Une méthode avec un return typé doit renvoyer une valeur avec return. Main traite l'appel comme cette valeur quand le type de retour n'est pas void.
📊 void body versus return
| Shape | What the method does | What Main often does |
|---|---|---|
void show(int n) |
writes inside the body | calls show(9); and may write nothing else |
int twice(int n) |
return n * 2; |
writes or stores twice(7) |
Une confusion fréquente est de mettre Console.WriteLine(n * 2); dans twice et de laisser l'en-tête en int sans return. Alors la compilation se plaint, ou vous remettez l'en-tête en void et vous n'avez plus de valeur pour que Main l'écrive depuis l'appel. Une autre confusion est d'écrire return; sans valeur alors que l'en-tête dit int. Gardez return n * 2; pour que le type de l'expression renvoyée corresponde à int. Écrire Console.WriteLine("twice"); dans Main écrit le mot twice ; cela n'appelle pas la méthode. Gardez Console.WriteLine(twice(7)) quand vous voulez 14 à l'écran.
Une démo greet restante qui n'écrit que hi lena dans la méthode peut rester dans le même fichier et brouiller l'écran. Videz Main jusqu'au WriteLine qui utilise twice, et gardez une méthode qui renvoie. Ne nichez pas twice dans les accolades de Main. Les méthodes se placent dans la classe, à côté de Main.
Vous pouvez écrire static int twice(int n), renvoyer une valeur calculée, et écrire cette valeur depuis Main. L'écran montre le nombre que Main a reçu, pas une ligne que la méthode a écrite seule. void est le mauvais en-tête quand vous avez besoin d'une valeur de retour. La page suivante est overloading, où plus d'une méthode peut partager un nom quand leurs listes de paramètres diffèrent.
L'écran tient ce que Main a reçu
Le fichier que vous gardez écrit 14 quand Main écrit twice(7). Le mot return est dans le corps de la méthode, et return n'apparaît pas à l'écran comme une étiquette imprimée. Des guillemets autour de twice écrivent des lettres, pas le résultat de l'appel. Nicher twice dans Main n'est pas la forme que cette leçon construit.
🧠 Testez Vos Connaissances
Testez Vos Connaissances
Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet
📝 Instructions
- Lisez chaque question attentivement
- Sélectionnez la meilleure réponse pour chaque question
- Vous pouvez refaire le quiz autant de fois que vous le souhaitez
- Votre progression sera affichée en haut