-5
votes

Pourquoi ce code imprimait avant de mettre une valeur?

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;
}

c++

6 commentaires

Parce qu'il y a un cout avant le CIN ?


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


3 Réponses :


1
votes

Bien sûr, cela fonctionne comme ça que vous devriez. xxx


0 commentaires

1
votes

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.


1 commentaires

Merci beaucoup, maintenant j'ai compris pourquoi c'était mon code était en difficulté



3
votes

Il génère d'abord parce que c'est la façon dont vous avez codé. Vous appelez COUT <<< / code> Avant d'appeler CIN >> .

Une étiquette ne change pas le flux du code, il marque simplement un endroit où goto est autorisé à sauter à. Dans votre cas, après A est déclaré, COUT >> est exécuté, puis CIN <<< / code> est exécuté, puis COUT << , puis cin >> , et ainsi de suite sans fin.

Vous ne devez vraiment pas utiliser goto 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: xxx


1 commentaires

Je supprimerais "tu ne devrais vraiment pas ..." parce que le point de ceci est probablement de savoir comment goto fonctionne, que vous ne ferez pas sans utiliser goto .