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

VB.NET Discussion :

explication visual basic 2010 [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti

    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 35
    Billets dans le blog
    1
    Par défaut explication visual basic 2010
    Bonjour à tous
    Je voudrais vous soumettre mon problème,j'ai réalisé un programme qui consiste à effectuer une somme en mode console visual basic 2010 .Le problème se trouve au niveau de la boucle de la fonction je l ai situé au niveau du début du code.L 'erreur qui se produit est qu'au niveau de la saisie du premier nombre,je fais exprès d'entrer une lettre alors le programme s'effectue normalement (c'est à dire qu'il signale à l'utilisateur qu'il doit rentrer des chiffres)sauf qu'au retour au début de la boucle je ne peux plus entrer de valeur et l opération se répète.Pouvez vous m expliquez mon erreur
    voici le code Merci de votre aide.
    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
     Module Module1
       
    
        Sub Main()
            Dim variable1 As String
            Dim variable2 As String 'Declarations des variables
            Dim variable3 As String = " "
            Dim variable4 As Integer
            Do
                Console.WriteLine("Saissisez le premier élement ")
                variable1 = Console.ReadLine()
                variable3 = variable1
    
                If IsNumeric(variable3) Then 'Controle de saisie de la première variable
                    Console.WriteLine("Saissisez le second élement")
                    variable2 = Console.ReadLine()
                    variable3 = variable2
                    If IsNumeric(variable3) Then 'Controle de saisie de la deuxième variable
                        variable4 = Val(variable1) + Val(variable2) 'Conversion des variables en string en integer
                        Console.WriteLine(variable1 & "+" & variable2 & "=" & variable4)
                        Console.Read()
                        Console.Read()
                        Console.Read() 'Mise en pause du programme
                    Else
                        Console.Write("Vous avez saisie des lettres saissisez des nombres svp") 'Signale d erreurs dans la saisie 2
                        Console.Read()
                    End If
                Else
                    Console.Write("Vous avez saisie des lettres saissisez des nombres svp") 'Signale d erreurs dans la saisie 1
                    Console.Read()
                End If
            Loop While Not IsNumeric(variable3)
        End Sub
    
    End Module

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 104
    Par défaut
    Pourquoi ne fais-tu pas une boucle (Do... Loop) pour chacune des variables à entrer ?

  3. #3
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Juste pour essayer : essaie de mettre Console.Read(true) au lieu de Console.Read()

    Aussi :
    - Renomme tes variables, c'est parfaitement illisible
    - Ta variable 3 ne sert absolument à rien
    - Comme dit mdevaux62, tu ferais mieux de faire une boucle de contrôle de la valeur saisie à chaque saisie de variable, plutôt que de demander de tout ressaisir => Imagine que tu es sur le site de déclaration des impôts, et qu'à la dernière page, tu aies un message d'erreur "vous devez mettre un chiffre" et que ça efface tout...

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Bonsoir,
    à tester en supprimant Console.Read :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                    Else
                        Console.WriteLine("Vous avez saisi des lettres, saissisez des nombres svp") 'Signale d erreurs dans la saisie 2
                    End If
                Else
                    Console.WriteLine("Vous avez saisi des lettres, saissisez des nombres svp") 'Signale d erreurs dans la saisie 1
                End If
    A mon avis c'est cette méhode qui ...
    Suite à une entrée éronnée, on peut supposer que l'utilisateur finira par entrer un nombre.
    Mais la méthode Read, lors de l'appui sur la touche Enter, récupère le premier caractère de la chaine saisie et procède à un retour à la ligne, avec la chaine restante.

    Si l'utilisateur a entré 1, la nouvelle ligne est vide et variable1 = "", d'où la boucle sans fin.
    Si il a entré 15, variable1 récupére la chaine restante de la nouvelle ligne soit 5, provoquant une erreur de calcul.

    Reste le problème de tout ressaisir en cas de mauvaise entrée, ça peut se résoudre comme le dit mdevaux62, avec une boucle par variable.

  5. #5
    Membre averti

    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 35
    Billets dans le blog
    1
    Par défaut Merci à tous
    Merci à tous pour vos réponses ,je tenterai de m appliquer un peu plus .

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

Discussions similaires

  1. Besoin de vos aides en visual basic 2010 remoting
    Par Chebil2006 dans le forum VB.NET
    Réponses: 0
    Dernier message: 14/02/2011, 21h35
  2. Création d'un nouveau projet avec Visual Basic 2010
    Par Francis649 dans le forum VB.NET
    Réponses: 2
    Dernier message: 07/11/2010, 15h34
  3. Réponses: 3
    Dernier message: 29/09/2010, 10h28
  4. Livre Visual Basic 2010
    Par jolona dans le forum Livres
    Réponses: 8
    Dernier message: 03/07/2010, 16h17
  5. Réponses: 2
    Dernier message: 06/05/2010, 15h52

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