Entwickler-Ecke

C# - Die Sprache - TryParse - C# Anfänger


iTztheBlade - Mo 01.10.12 10:43
Titel: TryParse - C# Anfänger
Hallo Leute - bin neu hier und hab gleich eine Frage an Euch.

Ich habe gestern angefangen, in C# zu programmieren ( meine 1. Sprache ).

Nun habe ich eine Aufgabe, bei der ich gar nicht weiß, wie ich anfangen soll.

Ich musste erst 3 Schleifen (Do, While, For) programmieren, die jeweils die Ganzzahlen zwischen 1 und 100 angeben.

C#-Quelltext
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:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
{
    using System;

    public class Summe
    {      
        public static void Main()
        {
            Combiner c; 
            int Ergebnis = 0;

            Console.WriteLine("Bitte wählen sie eine bevorzugte Schleife aus");
            Console.WriteLine("ForSchleife 1, WhileSchleife 2, DoSchleife 3. q zum Beenden");

            string eingabe = Console.ReadLine();

            switch (eingabe)
            {
                case "1":
                    {

                        Console.WriteLine("Wenn die Eingabe 1 ist, dann wähle ForSchleife aus.");
                        c = new ForCombiner();
                        Ergebnis = c.Sum(0100);
                        break;
                    }

                case "2":
                    {

                        Console.WriteLine("Wenn die Eingabe 2 ist, dann wähle WhileSchleife aus.");
                        c = new WhileCombiner();
                        Ergebnis = c.Sum(0100);
                        break;
                    }

                case "3":
                    {

                        Console.WriteLine("Wenn die Eingabe 3 ist, dann wähle DoSchleife aus.");
                        c = new DoCombine1();
                        Ergebnis = c.Sum(0100);
                        break;
                    }

                default:
                    {

                        Environment.Exit(0);
                        break;
                    }
            }

            Console.WriteLine(Ergebnis);

            Console.ReadKey();
        }
    }
}

Nun soll am Anfang abgefragt werden, von welcher Zahl bis welcher Zahl ich die Zwischensumme berechnen möchte. Also z.B. von 4 - 77.
Alles soll ich eine Methode mit TryParse.

Zur Verständlichkeit, hier eine meiner Schleifen:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
{
    class ForCombiner: Combiner
    {
        internal override int Sum(int start, int ende)
        {
              int summe = 0;
                  int i;

                  for (i = 1; i <= 100; i++)
                  {
                      summe = summe + i;
                      Console.WriteLine("Zwischensumme {0}: {1}", i, summe); 

                  }
                  Console.WriteLine("Die Summe von {0} ist {1}!", i - 1, summe);
                  return summe;
        }

    }
}


Schonmal vielen Dank für Eure Hilfe.

LG,
Blade

Moderiert von user profile iconTh69: C#-Tags hinzugefügt


Th69 - Mo 01.10.12 12:06

Hallo und :welcome:

was genau ist dir denn an der Benutzung von TryParse noch unklar?
Da du ja mittels string eingabe = Console.ReadLine() eine Zeichenkette einliest, muss diese erst noch in eine Zahl (int) konvertiert werden, damit du damit dann rechnen kannst (bzw. als Parameter an die Sum-Methode übergeben kannst).
Erster Anlaufpunkt für die Benutzung der Methoden sollte immer die MSDN sein: Int32.TryParse-Methode [http://msdn.microsoft.com/de-de/library/f02979c7.aspx]
Unter Anfängerfrage zu Methoden [http://www.entwickler-ecke.de/viewtopic.php?p=664028#664028] hat ein User aber auch ein Beispiel für TryParse angegeben.

P.S. Deine Sum-Methode sollte auch die 2 übergebenen Parameter benutzen ;-)


Palladin007 - Mo 01.10.12 12:29


C#-Quelltext
1:
2:
3:
4:
bool KeinFehler;
string text = "1234";
int ergebnis;
KeinFehler = int.TryParse(text, out ergebnis)


Mit out kannst du eine Variable als Argument übergeben und nach der Ausführung der Methode hast du dort einen neuen Wert drin. ergebnis muss auch nicht initialisiert sein. Hier: MSDN -> out (C#-Referenz) [http://msdn.microsoft.com/de-de/library/t3c3bfhx%28v=vs.80%29.aspx]

Mit dem eigentlichen Rückgabewert erfährst du dann, ob das auch wirklich eine Zahl war und kannst auch drauf reagieren.

Das gibt dir dann die Möglichkeit, direkt zu reagieren, wenn jemand z.B. einen Buchstaben eingegeben hat.
In einer Konsolen-Anwendung würde ich dann eine do-while-Schleife nutzen. Erst mal abfragen, dann wird in der Schleife geprüft, ob es eine Zahl war und wenn nicht, beginnt die Schleife halt von vorne und fragt erneut ab.


Oliver M. - Mo 01.10.12 22:04

user profile iconiTztheBlade hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe gestern angefangen, in C# zu programmieren ( meine 1. Sprache ).
Erstes mal am programmieren und schon so was komplexes??? :suspect: Das ist kein typisches Projekt für Anfänger.

user profile iconiTztheBlade hat folgendes geschrieben Zum zitierten Posting springen:
Ich musste erst 3 Schleifen (Do, While, For) programmieren, ...
Äh..., do und while gehören doch zu der gleichen Schleife :gruebel::
entweder: while (

C#-Quelltext
1:
Bedingung                    

C#-Quelltext
1:
) {                    

C#-Quelltext
1:
 Anweisung                    

C#-Quelltext
1:
 }                    

oder: do {

C#-Quelltext
1:
 Anweisung                    

C#-Quelltext
1:
 } while (                    

C#-Quelltext
1:
Bedingung                    

C#-Quelltext
1:
)                    


Könntest du bitte nochmal dein Problem schildern, ich verstehe nicht was das ganze machen soll oder wofür.