Mit einer for-Schleife in switch/case
Kann ich mit einer for-Schleife innerhalb einer switch/case?
Beispiel-code:
String[,] drinks = new String[,] { { "Cola", "20" }, { "Fanta", "20" }, { "Sprite", "20" }, { "Tuborg", "25" }, { "Carlsberg", "25" } };
switch (menuChoice)
{
case 0:
Console.WriteLine("Goodbye!");
Thread.Sleep(500);
Environment.Exit(0);
break;
for (int i = 0; i < drinksCount; i++)
{
case i+1:
buyDrink(drinks[i,0];
break;
}
(Mehr code und Verfahren ist zwischen diesen)
Grundsätzlich erstelle ich ein array mit den Getränken diese Maschine verkauft, und dann will ich ein Menü erstellen, wo haben diese Getränke, aber auch die Fähigkeit, fügen Sie mehr alkoholische Getränke innerhalb der GUI.
Ist das überhaupt möglich?
- Es IST angebracht zu Fragen Hausaufgaben Fragen auf, SO - bitte nicht falsch verstehen, mein Vorschlag: man sollte den tag diese Frage als 'Hausaufgabe', wenn das ist, was es ist.
- Es gibt keine Hausaufgaben-tag. Versuchen Sie nicht zu-tag als Hausaufgabe.
- zum einen müssen Sie angeben, in die 'Falle' für den code nach der Pause. Jetzt, nichts angewiesen ist, ausgeführt, dass-code (und in der Tat wird nicht kompiliert, wenn Sie es nicht tun).
- Es gibt eine Hausaufgaben-tag und meta.stackexchange.com/questions/10811/...
- Ich habe deine bearbeiteten Titel. Bitte sehen, "Sollten Fragen enthalten "tags" im Titel?", wo der Konsens ist ", Nein, Sie sollten nicht".
- Die Hausaufgaben-tag ist veraltet. Siehe stackoverflow.com/questions/tagged/homework
- Ich meinte nicht einen tag in seinen Titel...wir sind mit einem scheitern der Kommunikation
- Gut! Ich habe nicht bekommen das memo.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie Schleifen in switch-Anweisung aber nicht so, wie Sie es derzeit. Versuchen Sie, ersetzen Sie Ihren code mit folgenden code:
HINZUGEFÜGT:
Nach wertvollen Kommentare, warum Sie nicht einfach mit -1 als menuChoice für die Ausfahrt, auf diese Weise:
Diese Weise können Sie rufen Sie die statische Methode wie folgt:
static void buyDrink(String drink, double drinkPrice)
und es kann nicht sein, dass die array-Sachen in es. Wie zu beheben?Einen besseren Titel für diese Frage könnte sein: Ist es möglich, die variable case-Anweisungen?
Dies ist eine ungültige case-Anweisung. Eine dem Wert einer case-Anweisung muss eine Konstante. Wenn
i
waren eine Konstante, in diesem Fall, es wäre erlaubt. Allerdingsi
ist nicht, und deshalb ist die case-Anweisung nicht kompilieren.Gesagt haben, dass, obwohl die Antwort auf die titelgebende Frage ist ja, wie gezeigt, die von anderen Antworten, die richtige Antwort hier ist: Nicht die Art, wie Sie versuchen, es zu tun.
Macht es keinen Sinn zu haben, der code nach der Pause.
Brechen Sie aus der Falle, wie Sie erwarten, es zu führen?
Und selbst wenn es möglich ist, dass ich nicht sehen, den Punkt.
Sie löst den Fall, so lange es größer als 0 ist richtig?
Warum also nicht einfach ein
if statement
, sich und anderen helfen?Code konnte nicht an allen arbeiten.
Eine Pause ist der Letzte (und muss) - Anweisung der Fall ist.
Suche bei deinem Beispiel könnte man einfach schreiben
EDIT: Sehen Sie Ihren Kommentar zu buyDrink als statische Methode und die benötigten Parameter dann ändern Sie den Aufruf buyDrink voranstellen den Namen der Klasse, wo die buyDrink Methode definiert ist, und fügen Sie die parameter für den Preis (als double-Wert)