C# [Résolu] La vérité sur les boucles

A

Anonymous

Invité
#1
Bonjour,

Code:
static unsafe void Main(string[] args)
        {
            int i = 0;

            while (i < 5)
            {
                int a = 0;
                a++;
                i++;
                Console.WriteLine(a);
            }
//Console.WriteLine(a);
        }
Peut-on considérer, en prenant pour appui le code ci dessus, une boucle comme une fonction ??
Au risque de provoquer des inflammations cutanées d'urticaire chez les plus puristes d'entre vous, je pose la question puisque au final :
-une variable déclarée dans une boucle n'est utilisable que dans sa boucle (comme si elle était locale à la boucle...),
-chaque nouveau tour semble écraser les précédentes variables (à la fin d'une fonction, toutes ses variables sont bien détruites),
-SAUF les variables passées en (terme à prendre avec des pincettes) arguments comme le i (comme si le compilateur avait l'adresse du i au final... pour l'incrémenter et garder une trace de cette incrémentation).

Est-ce que ce raisonnement tient la route ?
Je peux donner plus de détails si vous trouver ma question pas claire :lol:


A noter que je trouve Internet étonnamment vide sur les requêtes à base de "boucles" et "fonctions"... en français comme en anglais. Cela a d'ailleurs tendance à me conforter dans l'idée que je viens de sortir une énorme c******* :mrgreen:
 

bouh2

Membre Actif
Inscrit
12 Septembre 2008
Messages
184
Reactions
21
#2
Re: La vérité sur les boucles

Petit éclaircissement :
Toute variable dans une portée n'est accessible que dans cette portée. Une portée est délimité par { et }
Ex :
Code:
int b = 0;
// on peut définir une portée sans instruction en entête
{
  int a = 0;
  b = 1; // ok bien entendu
  a = 2; // ok, je suis dans la portée
  while(a != 3) 
  {
    a = 3; // toujours ok, les { } délimitent la portée, boucle while ou pas
  }
}
a = 1; // erreur, je ne suis plus dans la portée
Une boucle while n'est surtout pas une fonction : tu ne peux pas appeler une boucle while, pas passer d'argument et une boucle while ne retourne rien. Bref ça n'a rien à voir
Ca n'a en commun que le fait qu'ils ont tous les deux une portée.
 
A

Anonymous

Invité
#3
Re: La vérité sur les boucles

Merci de ta réponse bouh2.

C'est finalement logique comme réponse. Mais je bloquais bêtement dessus :x
 

Geraff

Administrateur
Membre du personnel
Inscrit
13 Mars 2008
Messages
564
Reactions
0
#4
Une boucle en basic par exemple c'est un flag, un goto et un break (on peut donc avoir différentes visions de la chose.).
On peut donc retrouver différentes formes de boucles qui ne s'apparente aucunement a une fonction.

Déclare une variable dans un if et elle ne sera accessible que dans celui-là même.

La réponse de bouh2 est cependant très bien.
 
Haut Bas