Pourquoi cette goto est imprimée avant de mettre une valeur à la variable A? Devrait-il appeler b après la cout, non?
#include <iostream> using namespace std; int main(){ int a; b:cout << a << endl; cin >> a; goto b; return 0; }
3 Réponses :
Bien sûr, cela fonctionne comme ça que vous devriez.
Il exécute la ligne et a une référence pour aller plus tard pendant l'exécution. Donc, il sera toujours imprimé avant la couton car c'est comme ça que vous l'avez définie. L'étiquette ne supprime pas le code, seulement le contrôle. P>
Merci beaucoup, maintenant j'ai compris pourquoi c'était mon code était en difficulté
Il génère d'abord parce que c'est la façon dont vous avez codé. Vous appelez Une étiquette ne change pas le flux du code, il marque simplement un endroit où Vous ne devez vraiment pas utiliser COUT <<< / code> Avant d'appeler
CIN >> code>.
goto code> est autorisé à sauter à. Dans votre cas, après
A code> est déclaré,
COUT >> code> est exécuté, puis
CIN <<< / code> est exécuté, puis
COUT << code>, puis
cin >> code>, et ainsi de suite sans fin. p>
goto code> du tout. Il est généralement froncé par la plupart des développeurs comme une mauvaise pratique dans la conception de code. Utilisez une boucle régulière à la place, par exemple: p>
Je supprimerais "tu ne devrais vraiment pas ..." parce que le point de ceci est probablement de savoir comment goto code> fonctionne, que vous ne ferez pas sans utiliser
goto code>.
Parce qu'il y a un
cout code> avant le
CIN code>?
Mais il est lié à B, de sorte qu'il devrait traiter B comme une "fonction" ou quelque chose comme ça, non?
Non, ce n'est pas la façon dont les étiquettes fonctionnent.
Mieux ne pas utiliser
goto code> du tout. Il y a de nombreux gotchas qu'il est difficile de bien avoir raison, même s'il n'allume pas votre code en un plaque de spaghettis . Cette utilisation est juste un simple
tandis que (vrai) code> boucle.
Je l'ai eu, mais a une autre façon de le faire? Parce que j'ai un problème très similaire et ce problème est la raison de cette question
Développer sur ce problème très similaire et des chances sont bonnes que quelqu'un peut vous aider.