Exception Problem

Status
Nicht offen für weitere Antworten.

Gurotte

Mitglied
Hi,
Ich muss für mein Studium ein Lottoprogramm schreiben, ich weiß ihr helft nicht gern bei Hausaufgaben, aber ich will auch kein code von euch.
Hier schick ich schon mal den Code den ich habe:
Code:
import java.io.IOException;
import java.util.HashSet;
import javax.swing.JOptionPane;
import sun.io.Converters;
import Prog1Tools.IOTools;
public class Lottozahlen {
 /**
  * @param args
  */
 public static void main(String[] args) {
  HashSet<Integer> Tippzahlen = new HashSet<Integer>(49);
  while (Tippzahlen.size() < 6) {
   try{
    Tippzahlen
     .add((IOTools
       .readInteger("Bitte geben Sie 6 Zahlen ein, doppelte Zahlen werden ignoriert: ")));
 
   }
 
   catch (IOException größer49){
    If(Tippzahlen.contains(Tippzahlen > 49))
   }
 
 
 
 
  JOptionPane.showMessageDialog(null, "Ihre Zahlen sind: " + Tippzahlen);
  HashSet<Integer> Lottozahlen = new HashSet<Integer>(49);
  while (Lottozahlen.size() < 6) {
   int num = (int) (Math.random() * 49) + 1;
   if (Lottozahlen.add(new Integer(num))) {
   }
  }
  JOptionPane.showMessageDialog(null, "Die Lottozahlen lauten: "
    + Lottozahlen);
 }
}}

Bisher habe ich, dass ich sechs Zahlen eingeben kann und sie sortiert über die JOption Pane ausgegeben werden, das Programm selbst gibt mir auch sechs sortierte Zahlen aus, jetzt will ich noch, dass der Benutzer nicht Zahlen über 49 eintippen kann.
Könnte mir da jemand weiterhelfen, ich bin für jeden Tipp dankbar.
Lg Gurotte
 
Java:
if(müll eingegeben) continue;
Nebenbei:
Java:
int num = (int) (Math.random() * 49) + 1;
if (Lottozahlen.add(new Integer(num))) {
}
Das if hier ist mal völlig sinnlos, lass es weg. Zusätzlich kannst du auch vom Autoboxing (in diesem Fall int -> Integer) profitieren, das macht den Code etwas leserlicher. 😉
Java:
int num = (int) (Math.random() * 49) + 1;
Lottozahlen.add(num);
num kannst du dir dann auch noch schenken:
Java:
Lottozahlen.add((int) (Math.random() * 49) + 1);
Und überhaupt beginnt man per Konvention Variablennamen mit einem Kleinbuchstaben.

Ark

(ungetestet, wie immer ^^)
 
Fast. Das Problem ist, dass du aktuell jeden Wert ungeprüft in die Menge aufnimmst. An dieser Stelle wäre es besser, eine Variable zu verwenden, um vor dem Einfügen in die Menge zu prüfen, ob die Zahl gültig ist, und sie erst bei Gültigkeit aufzunehmen.

Ark
 
Ok danke, das hab ich verstanden.
Wenn ich aber eine variable hinzufügen will z.B.:
Code:
int zahl = [SIZE=2]Tippzahlen.add((IOTools.readInteger([/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"Bitte geben Sie 6 Zahlen ein, doppelte Zahlen werden ignoriert: "[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2])));
[/SIZE]
dann kann ich nicht int, sonder nur boolean verwenden, kann ich das umgehen oder nachher das boolean in ein int umwandeln?
 
Du hast doch schon ein HashSet, wieso willst du noch eine int-Variable benutzen?
Lass das int zahl mal weg.

// Edit: und btw boolean to int ist schwachsinnig.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben