Problème goto

rely -  
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...)

4 réponses

Peguinette Messages postés 176 Statut Membre 30
 
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
0
rely
 
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...
0
jp_zuate Messages postés 2 Statut Membre
 
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 ...
0
jp_zuate Messages postés 2 Statut Membre
 
Pourquoi je cause de PHP moi dans ma réponse, c'est po du PHP. N'importe quoi JP, n'importe quoi. Le reste du message reste vrai à mon sens ...
@+
0