2017-06-24 1 views
0

J'ai été chargé de créer un programme d'application de formulaire C# windows qui contient une boucle où il prendra l'entrée de l'utilisateur pour les limites supérieure et inférieure et la sortie commençant à 10 et se terminant avant le limites supérieures. Mon programme ne produira rien et je ne suis pas sûr de ce qui ne va pas. Voici ce que j'ai:Aucune sortie dans le programme avec entrée utilisateur et boucle

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace Loops 
{ 
public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private int lowerBounds, upperBounds, num; 

    private void TextBoxUpperBounds_TextChanged(object sender, EventArgs e) 
    { 
     upperBounds = Convert.ToInt32(Console.ReadLine()); 
    } 

    private void BtnOutputValues_Click(object sender, EventArgs e) 
    { 
     for (num = lowerBounds; num < upperBounds; num++) 
     { 
      if (num % 10 == 0) 
      { 
       MessageBox.Show(num.ToString()); 
      } 
      else { } 

     } 
    }   

    private void TextBoxLowerBounds_TextChanged(object sender, EventArgs e) 
    { 
     lowerBounds = Convert.ToInt32(Console.ReadLine()); 
    } 
} 

}

+1

Vous ne pouvez pas lire la valeur de la console ('Console.ReadLine())' lorsque vous êtes dans une application Formulaires – Jimbot

+0

Pourquoi vous lisez la console dans un événement de changement de zone de texte? Ne devriez-vous pas lire la valeur de la zone de texte, c'est-à-dire TextBoxUpperBounds.Text. – atomSmasher

+0

Alors lisez l'entrée avec TextBoxUpperBounds.Text? –

Répondre

0

atomSmasher était tout à fait correct. Voici le code qui fait exactement ce que je avais besoin de faire:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace Loops 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
       InitializeComponent(); 
     } 

     private int lowerBounds, upperBounds, num; 

     private void TextBoxUpperBounds_TextChanged(object sender, EventArgs e) 
     { 
      upperBounds = Convert.ToInt32(textBoxUpperBounds.Text); 
     } 

     private void BtnOutputValues_Click(object sender, EventArgs e) 
     { 
      for (num = lowerBounds; num < upperBounds; num++) 
      { 
       if (num % 10 == 0) 
       { 
        MessageBox.Show(num.ToString()); 
       } 
       else { } 

      } 
     }   

     private void TextBoxLowerBounds_TextChanged(object sender, EventArgs e) 
     { 
      lowerBounds = Convert.ToInt32(textBoxLowerBounds.Text); 
     } 
    } 
} 
0

votre code de sortie juste multiples 10 qui sont inférieures à la limite supérieure.

pour rendre votre code pour sortir les numéros entre borne limite inférieure et supérieure qui sont supérieurs à 10 ci-dessous, vous devez utiliser la boucle:

for (num = lowerBounds; num < upperBounds; num++) 
    { 
     if (num >10) 
     { 
      MessageBox.Show(num.ToString()); 
     } 
     else { } 

    }