Frage von Asonger, 40

Subtration in C#?

Ich habe folgenden Quelltext

Console.Write("__________________________________Subtraktion___________________________________");
                    Console.WriteLine("\n\tWie oft wollen sie die Zahl mal nehmen ?");
                    Console.Write("\t");

                    minuszahl1 = Convert.ToInt32(Console.ReadLine());

                    Console.WriteLine("\tWie oft soll von "+minuszahl1+" abgezogen werden ?");
                    Console.Write("\t");
                    minuszähler = Convert.ToInt32(Console.ReadLine());

                    for (int i = 1; i <= minuszahl2; i++)
                    {
                        Console.Write("\tZahl " + i + " : ");
                        minuszahl2 = Convert.ToInt32(Console.ReadLine());
                        minuszahl3 = minuszahl3 + minuszahl2;
                    }

                    minusergebnis = minuszahl1 - minuszahl3;
                    Console.WriteLine("\tDas Ergebnis von "+minuszahl1+" - "+minuszahl3+" ist = " + minusergebnis); 

Der Ausgabe nach, will es nicht in die Schleife gehen, egal was ich für die "Minuszahl2" eingebe.

Alle Variablen wurden "... = 0" deklariert.

Vielen Dank, schon im Vorraus.

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von MatthiasHerz, 19

In die Bedingung für die Schleife muss der "minuszähler" hin, oder nicht?

Es macht sonst keinen Sinn, eine Schleife zu starten, deren Bedingung schon vor der ersten Operation erfüllt ist.

Nur mal so am Rande:

Die Elemente einer Subtraktion nennt man Minuend und einen oder mehrere Subtrahenden.

Das Ergebnis ist die Differenz oder der "Wert der Differenz".

Bei einer Variablen namens "minuszahl" würde ich eine solche auch erwarten, nämlich eine Zahl unter null.

Kommentar von Asonger ,

Jawoll!
Da war wohl ein Denkfehler meinerseits.
Die Deklaration der Variablen soll so, da ich in diesen Programm mit weitaus mehr Variablen am kämpfen bin. :D

Herzlichsten Dank!

Kommentar von MatthiasHerz ,

Vielen Dank für den Stern (:

Antwort
von PWolff, 7

Völlig logisch, wenn du eine kopfgesteuerte Schleife nimmst  und minuszahl2 nicht / mit 0 initialisiert hast:

for (int i = 1; i <= minuszahl2; i++)

setzt i = 1 und vergleicht es direkt danach mit 0 --- 1 <= 0 liefert natürlich false.

Was willst/sollst du eigentlich erreichen?

Antwort
von Willibergi, 15

Bitte poste deinen Quellcode auf pastebin, damit er lesbarer wird.

LG Willibergi

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten