Zufall mit String

ponzopa

Neues Mitglied
Hallo zusammen,

ich schreibe in 2 Tagen eine Klausur und bin momentan echt am verzweifeln. Und zwar habe ich folgende Aufgabe:
Ich soll einen Wichtelgeschenkautomaten programmieren, der nach Eingabe eines Strings das Geschenk ausgibt. Wenn man etwas falsches eingibt kommt eine Fehlermeldung bei der es entweder mit einer 30%igen Wahrscheinlichkeit kein Geschenk mehr gibt oder ein zufälliges Geschenk ausgewählt wird. Nun habe alles hinbekommen, bis auf das zufällige Geschenk. Habe schon etwas recherchiert, aber die Sachen die ich herausgefunden habe funktionieren entweder nicht oder es sind Sachen die ich leider noch nicht kenne. Hier der Quellcode:

import java.util.*;
public class Wichtelautomat {

public static void main(String[] args) {
// Variablendeklaration
Scanner input = new Scanner(System.in);
Random zufall = new Random();
int zufallszahl = zufall.nextInt(100)+1;
String auswahl = (" ");
int zaehler = 0;
int wahrscheinlichkeit = 30;
String zufallsgeschenk = new String[]
{
"Tafel Schokolade", "Fußball", "Fernsehr", "Kamera", "Handy", "Gaming-PC"
};

// Ausgabe
System.out.println("Welches der folgenden Wichtelgeschenke möchten Sie haben?");
System.out.println("Tafel Schokolade \"W1\"");
System.out.println("Fußball \"W2\"");
System.out.println("Fernsehr \"W3\"");
System.out.println("Kamera \"W4\"");
System.out.println("Handy \"W5\"");
System.out.println("Gaming-PC \"W6\"");
auswahl = input.nextLine();

// Verarbeitung
switch (auswahl.toUpperCase()) {
case "W1" :
System.out.println("Sie haben die Tafel Schokolde gewählt.");
break;
case "W2" :
System.out.println("Sie haben den Fußball gewählt.");
break;
case "W3" :
System.out.println("Sie haben den Fernsehr gewählt.");
break;
case "W4" :
System.out.println("Sie haben die Kamera gewählt.");
break;
case "W5" :
System.out.println("Sie haben das Handy gewählt.");
break;
case "W6" :
System.out.println("Sie haben den Gaming-PC gewählt.");
break;
default:
System.out.println("Fehleingabe, es wird ein Wichtelgeschenk für Sie ausgewählt!");
for (zaehler = 0;zaehler<1 ;zaehler++ ) {
if (zufallszahl<=wahrscheinlichkeit) {
System.out.println("Wichtelgeschenk nicht verfügbar, bitte wählen Sie etwas anderes!");
} // end of if
else {
System.out.println("JHD");
} // end of if-else
} // end of for
} // end of switch




} // end of main

} // end of class Wichtelautomat


Freundliche Grüße
 
Nächstes mal bitte Code-Tags nutzen! [code=Java]MY CODE[/code].

Java:
default:
    System.out.println("Fehleingabe, es wird ein Wichtelgeschenk für Sie ausgewählt!");
    for (zaehler = 0;zaehler<1 ;zaehler++ ) {
        if (zufallszahl<=wahrscheinlichkeit) {
            System.out.println("Wichtelgeschenk nicht verfügbar, bitte wählen Sie etwas anderes!");
        } // end of if
        else {
            System.out.println("JHD");
        } // end of if-else
    } // end of for

Welche Intention hattest du das ganze in eine for-Schleife zu packen die eh nur 1 mal durchläuft? Dann kannst du die auch komplett weg lassen.
In deinem else-Block würde ich mir einfach eine neue Zufallszahl generieren lassen, die zwischen 0 und <Anzahl d. Geschenke> - 1 liegt.
Diese Zahl ist dann gleichzeitig der Index des zufallsgeschenk-Arrays.
 

Zurück
Oben