frank_jarle Skrevet 6. mars 2006 Del Skrevet 6. mars 2006 Har akurat skrevet et lite program , en liten kalulator med andre ord. Denne kjører to varialer som blir lagt isammen (input fra brukeren). Så jeg tenkte jeg skulle ta en sjekk om det er et heltall, og da bruker jeg Regular Expression. Dette funket egentlig greit (tror jeg). Så jeg skal kjøre en sjekk som gir en beskjed hvis brukeren angir et gyldig heltall, og en annen beskjed hvis det ikke er gyldig. Jeg prøvde å sette opp en grei loop på dette men får det bare ikke til å fungere, så jeg håper noen kan gi en hjelpnde hånd. __Code__ using System; using System.Text.RegularExpressions; using c = CalcDLL; namespace SI.Trainee { /// <summary> /// Summary description for Class1. /// </summary> class Class1 { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main(string[] args) { int tall1 = 0; int tall2 = 0; int res = 0; String strNumber; Console.WriteLine("Skriv inn tall 1"); strNumber = Console.ReadLine(); Regex re = new Regex("[^0-9]*"); bool test = false; do { Console.WriteLine("Skriv et tall"); strNumber = Console.ReadLine(); if ( re.IsMatch(strNumber)) { System.Console.WriteLine( "Du ikke har skrevet et heltall" ); } else System.Console.WriteLine( "Du har skrevet heltatt"); tall1 = Convert.ToInt32(strNumber); test = true; } while (test); // data = "Goodbye World!"; // if ( Regex.IsMatch( data, "Hello" ) ) // { // // Sadly, this will never be reached.. // System.Console.WriteLine( "Hello Found, joy!" ); // // //public bool IsWholeNumber(String strNumber) // { // Regex objNotWholePattern=new Regex("[^0-9]"); // return !objNotWholePattern.IsMatch(strNumber); // } Console.WriteLine("Skriv inn tall2"); tall2 = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(""); c.Calc _calc = new c.Calc(); res = _calc.Sum (tall1, tall2); Console.WriteLine("summen blir " + res); Console.ReadLine(); // // TODO: Add code to start application here // } } } Har ikke lagt ved calDLL, da denne ikke er relevant, den retunerer bare en verdi av to tall. Jeg gjør nok en stor feil i loopen tror jeg. Frankie Lenke til kommentar
oyvind_b Skrevet 6. mars 2006 Del Skrevet 6. mars 2006 (endret) (leste ikke koden nøye nok) Endret 6. mars 2006 av oyvind_b Lenke til kommentar
j000rn Skrevet 6. mars 2006 Del Skrevet 6. mars 2006 int tall1 = 0; Console.WriteLine("Skriv inn tall 1:"); while( int.TryParse( Console.ReadLine(), out tall1) == false ) { Console.WriteLine( "Du ikke har skrevet et heltall. Prøv igjen:" ); } Som du ser er det bedre å bruke int.Parse/int.TryParse for å sjekke om det som er skrevet inn er et tall. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå