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
int num =(int)(Math.random()*49)+1;if(Lottozahlen.add(newInteger(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.
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.
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?