Ich schreibe ein vielflächiges Werkzeugwalzprogramm. Der Benutzer kann die Art des zu würfelnden Würfels und die Anzahl der Würfel eingeben. Es funktioniert gut, außer dass ich nicht sicher bin, wie ich die Summe addiere und dann ausdrucken soll.
Es wird jedoch erfolgreich jede einzelne Rolle gedruckt, also weiß ich, dass es so weit geht, die Zufallszahlen im richtigen Bereich zu erzeugen, der vom Benutzer bestimmt wird. Ich wollte die Summe am Ende des Programms drucken, aber es funktioniert nicht.
Verschwindet der Wert der Variablen, nachdem das Programm den Schalter verlassen hat?Wie kann ich eine laufende Summe erstellen, die ihren Wert außerhalb des Switch-Falls behält?
static void Main(string[] args)
{
int typeOfDice = Convert.ToInt32(Console.ReadLine());
Random rnd = new Random();
int numberOfDice = Convert.ToInt32(Console.ReadLine());
// Assigns random generator parameters to user's choice of dice type
switch (typeOfDice)
{
case 4:
for(int count = 0; count < numberOfDice; count++)
{
int currentRoll = rnd.Next(typeOfDice);
int total = currentRoll + 1;
Console.WriteLine(currentRoll + 1);
Console.WriteLine(" ");
}
break;
//....
case 100:
for (int count = 0; count < numberOfDice; count++)
{
int currentRoll = rnd.Next(typeOfDice);
int total = currentRoll + 1;
Console.WriteLine(currentRoll + 1);
}
break;
}
}
}
Danke. Weißt du, wie ich beurteilen kann, ob der Benutzer einen anderen Wert als 4, 6, 8, 10, 12, 20 oder 100 eingibt? Ich dachte vielleicht an den oder Operator ||, aber kann ich damit mehrere Werte auswerten? Ich weiß, dass es für 2 verwendet werden kann, wie in if (numberOfDice! = 4 || numberOfDice! = 6), aber ich bin nicht sicher, wie man es mit mehr als 2 Werten macht. Oder muss ich mehrere separate if-Anweisungen verwenden? Gibt es einen besseren Weg? Arrays, vielleicht? Ich habe mich noch nie mit Arrays herumgeschlagen. – JohnnyRelentless
Es sieht so aus, als würdest du jeden Würfeltyp einzeln im Switch handhaben, also kannst du einen Standardfall (mit Default :) hinzufügen und dort ungültige Würfeltypen behandeln. Sie können auch in HashSet und Mitgliedschaft testen. Für eine zukünftige Referenz sollte eine Folgefrage wie diese in einer neuen Frage und nicht in einem Kommentar stehen. Vielen Dank. – bpachev