Exercice - Retourner des nombres à partir de méthodes
- 10 minutes
Vous pourriez souvent avoir besoin de renvoyer des nombres à partir de méthodes et d'utiliser les résultats pour d'autres tâches. Dans ce bref exercice, vous allez vous entraîner à retourner des types de données int et double, et à capturer les valeurs de retour.
Créer une méthode qui retourne un entier
Supposons que vous êtes en visite au Vietnam et que vous souhaitez créer un bref programme qui convertit les devises. Vous pouvez supposer que le taux de change actuel est 1 USD = 23500 VND. Dans cette tâche, vous allez écrire une méthode qui convertit la devise USD en devise VND.
Dans l’éditeur Visual Studio Code, supprimez tout code existant des exercices précédents.
Entrez le code suivant dans l’Éditeur Visual Studio Code :
double usd = 23.73; int vnd = UsdToVnd(usd); Console.WriteLine($"${usd} USD = ${vnd} VND"); int UsdToVnd(double usd) { }Dans cette étape, vous initialisez deux variables pour stocker les valeurs USD et VND. Notez que la variable
vndest initialisée au résultat de la méthodeUsdToVnd. La méthode retourne une valeur entière, car VND est généralement représentée sous forme de nombres entiers. Pour afficher les résultats de la conversion de devises,Console.WriteLineest utilisé.Ensuite, vous allez ajouter du code pour effectuer la conversion. Mettez à jour la méthode
UsdToVndavec le code suivant :int UsdToVnd(double usd) { int rate = 23500; return (int) (rate * usd); }Si vous omettez le cast du résultat retourné, l’erreur suivante s’affiche :
Cannot implicitly convert type 'double' to 'int'.Cela se produit parce que le compilateur tente de convertir la valeur retournée de façon à ce qu’elle corresponde au type de données spécifié dans la signature de méthode. Toutefois, un cast implicite n’est disponible qu’en cas d’absence de perte de données résultant de la conversion. La valeur de retour doit toujours correspondre au type de données spécifié dans la signature de méthode. Dans ce cas, vous devez donc caster le résultat.
Si nécessaire, ouvrez le panneau Terminal intégré de Visual Studio Code.
À l’invite de commandes du Terminal, entrez dotnet run et comparez votre sortie avec les éléments suivants :
$23.73 USD = $557655 VNDSi votre code affiche des résultats inattendus, vous devez le passer en revue afin de trouver votre erreur et d’effectuer des mises à jour. Réexécutez le code pour voir si vous avez résolu le problème. Continuez à mettre à jour et à exécuter votre code jusqu’à ce qu’il produise les résultats attendus.
Créer une méthode qui retourne une valeur de type Double
Ensuite, vous allez créer une méthode permettant de reconvertir les devises VND en USD.
Créez une ligne de code vide à la fin de la méthode
UsdToVnd.Entrez le code suivant :
double VndToUsd(int vnd) { }Mettez à jour la méthode
VndToUsdavec le code suivant :double VndToUsd(int vnd) { double rate = 23500; return vnd / rate; }Dans ce cas,
ratedoit être une valeur de typedouble, sans quoi le compilateur utilise la division entière et retourne une valeurinttronquée. La variable USD doit être représentée par un nombre décimal.Si vous définissez
ratesur une valeur de typeintplutôt que de typedouble, vous remarquerez que le compilateur ne présente aucune erreur. Cela se produit car la valeur devnd / rateest implicitement castée en type de donnéesdoublespécifié dans la signature de méthode. Lorsque vous créez des méthodes qui retournent des valeurs numériques, il est important de prendre en compte les types de données dans les opérations effectuées par votre méthode.Recherchez l’appel à
Console.WriteLineet ajoutez une nouvelle ligne de code vide. Entrez ensuite le code suivant pour appeler notre nouvelle méthode et imprimer la sortie :Console.WriteLine($"${vnd} VND = ${VndToUsd(vnd)} USD");
Vérifier votre travail
Dans cette tâche, vous allez exécuter notre application à partir du Terminal intégré et vérifier que votre code fonctionne correctement. Commençons.
Comparez votre code à ce qui suit pour vous assurer qu’il est correct :
double usd = 23.73; int vnd = UsdToVnd(usd); Console.WriteLine($"${usd} USD = ${vnd} VND"); Console.WriteLine($"${vnd} VND = ${VndToUsd(vnd)} USD"); int UsdToVnd(double usd) { int rate = 23500; return (int) (rate * usd); } double VndToUsd(int vnd) { double rate = 23500; return vnd / rate; }Enregistrez votre travail à l’aide de Ctrl + S ou du menu Fichier de Visual Studio Code.
Si nécessaire, ouvrez le panneau Terminal intégré de Visual Studio Code.
Dans le volet EXPLORATEUR, pour ouvrir un Terminal à l’emplacement de votre dossier TestProject, cliquez avec le bouton droit sur TestProject, puis sélectionnez Ouvrir dans le Terminal intégré.
À l’invite de commandes du Terminal, entrez dotnet run.
Vérifiez que votre code produit la sortie suivante :
$23.73 USD = $557655 VND $557655 VND = $23.73 USDSi votre code affiche des résultats différents, vous devez le passer en revue afin de trouver votre erreur et d’effectuer des mises à jour. Réexécutez le code pour voir si vous avez résolu le problème. Continuez à mettre à jour et à exécuter votre code jusqu’à ce qu’il produise les résultats attendus.