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 :

[Débutant] bool & boucle?


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 192
    Par défaut [Débutant] bool & boucle?
    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
    17
    18
    19
    20
    21
            private static void Calc_N1(){
                    byte choice_N1;
                Console.WriteLine("Debutons avec N1");
                Console.WriteLine("Choisissez le chiffre qui correspond a votre situation");
                Console.WriteLine("1-Redoubler Terminale\n2- Redoubler Premiere\n3- Jamais redoublez");
                bool Allow_N1 = true;
                do{
                    Allow_N1 = true;
                    choice_N1 = (byte) Console.Read();
                    switch(choice_N1){
                        case 1:N1 = 0;
                            break;
                        case 2:N1 = 0.5;
                            break;
                        case 3:N1 = 1;
                            break;
                        default:Allow_N1 = false;
                            break;
                        }
     
                }while(Allow_N1 == false);
    Bonjour,je viens de commencer .net et deja que je me perd.
    Mon probleme est le suivant, que je saisisse 1,2 ou 3 ou autre chose ca boucle quand méme , alors que ce n'est censé reboucler que quand l'user met autre chose que 1,2 ou 3

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 192
    Par défaut
    Ah, nevermind les gars.
    J'ai trouvé.
    Console.Read c'est que pour les int , et donc on ne peut caster que des int
    j'ai mis double.Parse(Console.ReadLine());
    c'est sa ?


    Sinon j'ai une autre gaffe un peu plus compliqué !
    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
    17
    18
    19
    20
    21
    22
    private static void Calc_N3()
            {
                Console.WriteLine("N3");
                double[] notes = new double[5];
                string[] notes_names = { "Francais", "Arabe", "Math", "Physique", "Anglais" };
                bool valid_N3 = true;
                do
                {
                    valid_N3 = true;
                    foreach (string nm in notes_names)
                    {
                        Console.WriteLine("Saisissez votre note de :" + nm);
                        foreach (int note in notes) { notes[note] = double.Parse(Console.ReadLine()); }
                    }
                    Console.Write("Vos notes sont:");
                    foreach (double note in notes) Console.Write(" " + note);
                    Console.WriteLine("Validez ? O/N");
                    string ans = null;
                    ans = Console.ReadLine().ToLower().Trim();
                    if (ans != "o") valid_N3 = false;
     
                } while (valid_N3 == false);
    voila ce qui s'affiche

    Saisissez votre note de :Francais
    12
    12
    14
    15
    16
    Saisissez votre note de :Math
    Comme vous pouvez le pensez, je cherche a faire en sorte que :: une fois la note de francais saisi, la sous boucle revienne a la boucle principale.
    C'est ce que je croyais en faite
    mais on dirait que non ;(
    qui a des solutions a me proposer, si ce n'est de faire les notes une après une, (ce qui n'est pas tres ludique ;()

  3. #3
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Le problème c'est surtout que tu n'as pas besoin d'une sous boucle. Pour chaque matière tu dois saisir une note et donc il faut ajouter un élément au tableau des notes à chaque saisie. Pas de besoin de faire un parcours des notes.

    Ensuite pour l'initialisation de ton tableau de note, j'aurai tendance à le faire après avoir initialisé la liste des matières. Cela permet de se servir de la taille du tableau des matières et limiter les erreurs en cas de changement de la liste des matières (IndexOutOfRangeException principalement).

    Pour finir, si l'utilisateur saisi n'importe quoi qui ne correspond pas un double tout ça va te péter au visage. Donc il faut un peu revoir la conversion.

    Essaye plutôt avec quelque chose comme ceci

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    private static void Calc_N3()
    {
        string[] matiere = { "Francais", "Arabe", "Math", "Physique", "Anglais" };
        double[] notes = new double[matiere.Length];
     
        bool exit;
        do
        {
            double result;
            string validExit;
     
            // Saisie des notes
            for (int i = 0; i < matiere.Length; i++)
            {
                Console.WriteLine("Saisissez votre note de : " + matiere[i]);
                while (!double.TryParse(Console.ReadLine(), out result))
                {
                    Console.WriteLine("La valeur saisie n'est pas valide. Veuillez recommencer.");
                }
                notes[i] = result;
            }
     
            // Affichage des notes saisies
            Console.WriteLine(); 
            Console.WriteLine("Vos notes sont : ");
            for (int i = 0; i < matiere.Length; i++)
            {
                Console.WriteLine(matiere[i] + " : " + notes[i]);
            }
     
            // Validation de la saisie
            Console.WriteLine();
            do
            {
                Console.WriteLine("Validez ? O/N");
                validExit = Console.ReadLine();
            }
            while (!validExit.Equals("o", StringComparison.OrdinalIgnoreCase) &&
                   !validExit.Equals("n", StringComparison.OrdinalIgnoreCase));
     
            exit = validExit.Equals("o", StringComparison.OrdinalIgnoreCase);
     
        } while (!exit);
    }
    A améliorer en ajoutant des conditions de validité sur la note saisie (entre 0 et 20 par exemple), ...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 192
    Par défaut
    ah merci ! un vrai prof
    Résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant]Problème de boucle infini
    Par Keldou dans le forum Octave
    Réponses: 1
    Dernier message: 21/04/2007, 17h20
  2. [Débutant] Programmer une boucle
    Par driver dans le forum Pascal
    Réponses: 2
    Dernier message: 25/02/2007, 20h59
  3. [débutant] Pb dans boucle For
    Par Sam 069 dans le forum Access
    Réponses: 2
    Dernier message: 11/09/2006, 13h10
  4. [VBS][Débutant] Problème syntaxe boucle For
    Par _alex_ dans le forum VBScript
    Réponses: 2
    Dernier message: 26/07/2006, 14h26
  5. [Débutant] Texte en boucle
    Par mat74 dans le forum Langage
    Réponses: 3
    Dernier message: 22/04/2006, 18h53

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