Entwickler-Ecke

C# - Die Sprache - Fehler bei Ausgabe - Wahrscheinlich einfach schnelle Hilfe p


Stratego - Sa 25.06.11 22:52
Titel: Fehler bei Ausgabe - Wahrscheinlich einfach schnelle Hilfe p
Hallo, bei dieser Anweisung:


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:
  string daytag;

            if (Gesamtall == 0)
            {
                daytag = "Sonntag";
            }

            else
                if (Gesamtall == 1)
                {
                    daytag = "Montag";
                }

                else
                    if (Gesamtall == 2)
                    {
                        daytag = "Dienstag";
                    }

                    else
                        if (Gesamtall == 3)
                        {
                            daytag = "Mittwoch";
                        }

                        else
                            if (Gesamtall == 4)
                            {
                                daytag = "Donnerstag";
                            }

                            else
                                if (Gesamtall == 5)
                                {
                                    daytag = "Freitag";
                                }
                               
                                else
                                    if (Gesamtall == 6)
                                    {
                                        daytag = "Samstag";
                                    }


            Console.WriteLine(" Der " + Tag + "." + Monthtry + "." + Jahrtry + Jahrend + " war ein " + daytag);



gibt es einen Error bei dem letzten daytag in der Ausgabe. Der Fehler heißt "Use of unassigned local variable 'daytag'" aber ich verstehe es nicht und würde gerne wissen was ich machen muss damit die Ausgabe läuft.

Vielen dank schonmal!

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


jaenicke - So 26.06.11 07:17

Hallo und :welcome:

Es gibt bei dir keinen Fall, wenn ein anderer Wert vorliegt. Deshalb ist die Variable nicht unbedingt immer zugewiesen und das merkt der Compiler. Ob der Fall vorkommen kann, kann der Compiler nicht feststellen. Zudem könnte es bei dir ja auch einen Fehler geben, so dass die Variable doch einen anderen Wert als 0 bis 6 hat.

Es reicht also die Variable bei der Deklaration auch zu initialisieren oder ein else ohne Bedingung hinzuzufügen. Oder du machst es gleich so:

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:
            switch (Gesamtall)
            {
                case 0:
                    daytag = "Sonntag";
                    break;
                case 1:
                    daytag = "Montag";
                    break;
                case 2:
                    daytag = "Dienstag";
                    break;
                case 3:
                    daytag = "Mittwoch";
                    break;
                case 4:
                    daytag = "Donnerstag";
                    break;
                case 5:
                    daytag = "Freitag";
                    break;
                case 6:
                    daytag = "Samstag";
                    break;
                default:
                    daytag = "ungültiger Wert";
                    break;
            }