Instructions de saut (goto)
Fait partie de la section Logique & Flux du Journey C# de Coddy — leçon 20 sur 66.
L'instruction goto en C# fournit un moyen de transférer le contrôle directement vers une instruction étiquetée au sein de la même méthode.
Créez une étiquette dans votre code :
start:Utilisez l'instruction goto pour sauter vers cette étiquette :
goto start;Voici un exemple simple qui utilise goto pour créer une boucle :
int i = 0;
start:
if (i < 5)
{
Console.WriteLine(i);
i++;
goto start;
}Après l'exécution du code ci-dessus, la sortie sera :
0
1
2
3
4Bien que goto existe en C#, il est généralement recommandé d'utiliser des instructions de contrôle de flux structurées (if, for, while, etc.) à la place, car elles rendent le code plus lisible et facile à maintenir.
Défi
FacileCréez une méthode nommée ProcessCommands qui prend un argument :
- Une chaîne de caractères (
command) qui contient une commande à traiter.
La méthode doit implémenter un processeur de commandes simple en utilisant des instructions goto :
- Si la commande est "start", affichez "Starting process" puis allez à l'étiquette "end"
- Si la commande est "stop", affichez "Stopping process" puis allez à l'étiquette "end"
- Si la commande est "pause", affichez "Pausing process" puis allez à l'étiquette "end"
- Si la commande est n'importe quoi d'autre, affichez "Unknown command" puis allez à l'étiquette "end"
- À l'étiquette "end", affichez "Command processed"
Aide-mémoire
L'instruction goto transfère le contrôle directement à une instruction étiquetée au sein de la même méthode.
Créer une étiquette :
start:Sauter vers une étiquette en utilisant goto :
goto start;Exemple d'utilisation de goto pour créer une boucle :
int i = 0;
start:
if (i < 5)
{
Console.WriteLine(i);
i++;
goto start;
}Bien que goto existe en C#, les instructions de flux de contrôle structurées (if, for, while, etc.) sont généralement recommandées pour une meilleure lisibilité et maintenance du code.
Essayez vous-même
using System;
public class Program
{
public static void ProcessCommands(string command)
{
// Écrivez votre code ici
}
public static void Main(string[] args)
{
string command = Console.ReadLine();
ProcessCommands(command);
}
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Tableaux multidimensionnels
Bases des tableaux 2DDéclaration et initialisation en 2DAccès aux éléments d'un tableau 2DBoucles imbriquées et tableaux 2DTableaux irréguliersOpérations matricielles courantesRécapitulatif - Multidimensionnel4Techniques de contrôle de flux
Retours anticipésClauses de gardeInstructions de saut (goto)Break et ContinueAplatir les conditionnelles imbriquées2Prise de décision avancée
Conditions multiplesLogique booléenne complexeComparaison If vs SwitchInstructions Switch imbriquéesRécapitulatif - Décisions avancées5Gestion des exceptions
Bases du Try-CatchTypes d'exceptionsBlocs Catch multiplesManipulation de fichiersLe bloc FinallyUsing vs Try-FinallyExceptions personnaliséesRécapitulatif - Gestion des erreurs3Améliorations des boucles
Performance des bouclesItération de structures complexesChaque type de boucleRefactorisation des bouclesRécapitulatif - Boucles optimisées6Gestion des valeurs nulles
Les bases des références nullesTypes valeur nullablesPatterns de vérification de nullitéProgrammation défensiveRécapitulatif - Null Safety