IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

boucle "for" dans "do while"


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 175
    Points : 70
    Points
    70
    Par défaut boucle "for" dans "do while"
    Bonjour,

    J'essaie d'afficher en boucle "bonjour" et de le stopper lors de l'appuie sur la tocuhe "s" mais ça crash lors au lancement du prog :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    using System;
     
    public class boucle
    { 
        public static void Main(string[] args)
        {
            do {
                   for (;;) Console.WriteLine("bonjour"); 
               }
     
            while ( Console.Read() != 's' );
            Console.WriteLine("au revoir");
     
        } 
    }
    à la compilation :

    test.cs(12,27): warning CS0162: Unreachable code detected
    test.cs(13,19): warning CS0162: Unreachable code detected

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Points : 104
    Points
    104
    Par défaut
    Bjr,
    je ne comprends pas l'utilité du Si vous l'enlevez, votre programme fera ce que vous souhaitez, non ??

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 175
    Points : 70
    Points
    70
    Par défaut
    j'aimerai l'afficher en boucle, si j'enlève "for" il apparait qu'une fois.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Points : 780
    Points
    780
    Par défaut
    permet de créer une boucle infinie. Donc il y a une boucle infinie dans une boucle infinie à condition => On n'en sort jamais

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 175
    Points : 70
    Points
    70
    Par défaut
    Es ce qu'il aurai une autre façon de l'écrire pour que le résultat soit identique ?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Points : 104
    Points
    104
    Par défaut
    Je pense qu'en utilisant des threads, vous devriez y arriver.

  7. #7
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Une autre écriture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (;Console.Read() != 's' ;) 
      {Console.WriteLine("bonjour");Sleep(1000);} // 1 seconde entre chaque Bonjour
    Console.WriteLine("au revoir");
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  8. #8
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    Citation Envoyé par johnjohn33
    Je pense qu'en utilisant des threads, vous devriez y arriver.
    vindieu le bourrin ici

    Voilà qui est quand même plus simple que les threads :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    do {
    	while (!Console.KeyAvailable) {
    		Console.WriteLine("bonjour");
    	}
    } while (Console.ReadKey(true).KeyChar != 's');
    non ?

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 175
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par davcha
    vindieu le bourrin ici

    Voilà qui est quand même plus simple que les threads :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    do {
    	while (!Console.KeyAvailable) {
    		Console.WriteLine("bonjour");
    	}
    } while (Console.ReadKey(true).KeyChar != 's');
    non ?

    C'est parfait, merci beaucoup.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 175
    Points : 70
    Points
    70
    Par défaut
    bonjour,

    une petite question est-il possible d'arrêter un sleep() avec le même genre de boucle, lorsqu'une tocuhe est pressée ?

  11. #11
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Citation Envoyé par oranoutan
    bonjour,

    une petite question est-il possible d'arrêter un sleep() avec le même genre de boucle, lorsqu'une tocuhe est pressée ?
    Tu veux dire reprendre une boucle quand tu appuis sur une touche ?
    OUi c'est possible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Dim Block as Bolean = True
    Private Sub BlockBoucle()
        While Block = True
            application.DoEvents
        End While
    End Sub
     
    'Dans ta boucle principale :
    For i as integer = 0 to 1000
      Msgbox("rrrr")
      BlockBoucle()
    Next
     
    'plus loin dans l'evenemetn click d'un boutton par ex tu fais :
    Block = False
    Et puis ta boucle va reprendre...

    Désolé c'est du VB.NET

    ++
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 175
    Points : 70
    Points
    70
    Par défaut
    je ne connais pas le VB.NET
    Mais est-il possible d'arrêter un sleep() avant le délai ?

  13. #13
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Citation Envoyé par oranoutan
    je ne connais pas le VB.NET
    Mais est-il possible d'arrêter un sleep() avant le délai ?
    Normalement non car c'est toi qui le défini dont je vois pas pourquoi tu aurais besoin de l'arreter avant...
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  14. #14
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    une petite question est-il possible d'arrêter un sleep() avec le même genre de boucle, lorsqu'une tocuhe est pressée ?
    On arrete pas un sleep, mais on peut tester si une touche est pressée entre chaque sleep.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

Discussions similaires

  1. [vbnet 1.1]Inserer deux simple quote sans texte dans une db
    Par ChristopheOce dans le forum Windows Forms
    Réponses: 8
    Dernier message: 15/03/2007, 08h51
  2. [Fonction] Quote et guillemet dans un textarea
    Par ddelec24 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/03/2007, 15h51
  3. Réponses: 5
    Dernier message: 15/04/2005, 14h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo