Problème goto
rely
-
jp_zuate Messages postés 2 Statut Membre -
jp_zuate Messages postés 2 Statut Membre -
voilà mon code:
Console.WriteLine("Veuillez saisir une valeur pour k (0 est admis):");
k=Console.ReadLine().ToInt16;
if(k>3)
Console.WriteLine("Veuillez saisir une valeur comprise entre zéro et trois, zéro inclus:");
else
switch(k)
{
case0: goto L0;
break;
case1: goto L1;
break;
case2: goto L2;
break;
case3: goto L3;
break;
}
L0: f=i+j;
return
L1: f=g+h;
L2: f=g-h;
L3: f=i-j;
Console.WriteLine("Pour k= {0}, h= {1}", k, h);
Question: après mes opérations L0, L1 etc... dois-je un return que le programme saute à la fin du programme? Si oui return vers où? Je dois rajouter une étiquette avant l'affichage de fin?
(je sais c'est pas génial mais mon prof veut absolument ça, ensuite je dois le faire en assembleur...)
Console.WriteLine("Veuillez saisir une valeur pour k (0 est admis):");
k=Console.ReadLine().ToInt16;
if(k>3)
Console.WriteLine("Veuillez saisir une valeur comprise entre zéro et trois, zéro inclus:");
else
switch(k)
{
case0: goto L0;
break;
case1: goto L1;
break;
case2: goto L2;
break;
case3: goto L3;
break;
}
L0: f=i+j;
return
L1: f=g+h;
L2: f=g-h;
L3: f=i-j;
Console.WriteLine("Pour k= {0}, h= {1}", k, h);
Question: après mes opérations L0, L1 etc... dois-je un return que le programme saute à la fin du programme? Si oui return vers où? Je dois rajouter une étiquette avant l'affichage de fin?
(je sais c'est pas génial mais mon prof veut absolument ça, ensuite je dois le faire en assembleur...)
4 réponses
La premiere regle en programmation :
NE JAMAIS FAIRE DE GOTO SAUF SI ON EST OBLIGE (EX: ASSEMBLEUR)
Or là visiblement ce n'est pas de l'assembleur.
---------
Peguinette
NE JAMAIS FAIRE DE GOTO SAUF SI ON EST OBLIGE (EX: ASSEMBLEUR)
Or là visiblement ce n'est pas de l'assembleur.
---------
Peguinette
je sais bien mais mon prof veux le C et l'assembleur, les deux avec des goto! je sais c'est une abbération, mais bon, si ça peut lui faire plaisir...
Bon, même si c'est pas beau, ton prof doit avoir ses raisons, que j'espère pédagogiques.
Je ne suis pas expert PHP, loin de là, mais si dans ton prog tu prévois l'affichage d'un résultat quelconque (en l'occurence ici Console.WriteLine...), je me dit comme ça qu'il faut qu'il s'affiche. Donc un petit GOTO FIN me parait le bien venu, FIN étant bien entendu une étiquette située juste avant Console.WriteLine.
Par ailleurs, tu testes en début de programme si K > 3 pour afficher une erreur. Et là, un GOTO DEBUT, ça serait pas mieux ? DEBUT serait quand à lui une étiquette située avant Console.WriteLine.
Et j'imagine qu'une fois que vous vous serez tous trituré l'esprit à faire des GOTO il vous fera une magistrale démonstration de l'utilité des boucles ...
Je ne suis pas expert PHP, loin de là, mais si dans ton prog tu prévois l'affichage d'un résultat quelconque (en l'occurence ici Console.WriteLine...), je me dit comme ça qu'il faut qu'il s'affiche. Donc un petit GOTO FIN me parait le bien venu, FIN étant bien entendu une étiquette située juste avant Console.WriteLine.
Par ailleurs, tu testes en début de programme si K > 3 pour afficher une erreur. Et là, un GOTO DEBUT, ça serait pas mieux ? DEBUT serait quand à lui une étiquette située avant Console.WriteLine.
Et j'imagine qu'une fois que vous vous serez tous trituré l'esprit à faire des GOTO il vous fera une magistrale démonstration de l'utilité des boucles ...