Zufalls Lotto Zahlen Ausgeben

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo, ich habe als übung einen kleinen Program geschrieben der mir 6 Lotto Zahlen ausgibt. Das problem ist

1). Gibt es einen anderen Weg 6 Zahlen in einer Zeile zu generieren und in einer Zeile Ausgeben ?

2). Ich möchte vor der eins keine Komma ? Wie kann ich das machen ?

Hier der Quelltext :

Code:
public class lotto_zahlen {


	public static void main(String[] args) {
		
		// Angelegen eines Zahl-Arrays
		
		Integer[] zahl ={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17
				,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32
				,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49};
		
		//Feststellen der Array-Laenge
		int lange=zahl.length;
		
		// Zufalls Generator Erstellen
		
		int zufall = (int)Math.round(Math.random()* (lange-1));
		int zufall1 = (int)Math.round(Math.random()* (lange-1));
		int zufall2 = (int)Math.round(Math.random()* (lange-1));
		int zufall3 = (int)Math.round(Math.random()* (lange-1));
		int zufall4 = (int)Math.round(Math.random()* (lange-1));
		int zufall5 = (int)Math.round(Math.random()* (lange-1));
		
		// Konsole  Ausgabe
		
		System.out.print(","+zahl[zufall]);
		System.out.print(","+zahl[zufall1]);
		System.out.print(","+zahl[zufall2]);
		System.out.print(","+zahl[zufall3]);
		System.out.print(","+zahl[zufall4]);
		System.out.print(","+zahl[zufall5]);
		
	}

}
[\code]

  Die Ausgabe in der Konsole :


     ,8,12,1,46,23,3

Gibt es einen weg um diesen Komma vor der 8 wegzulassen ?

mfg
 
Anonymous hat gesagt.:
maki hat gesagt.:
Hallo, ich habe als übung einen kleinen Program geschrieben der mir 6 Lotto Zahlen ausgibt.
Soso..

Gibt es einen weg um diesen Komma vor der 8 wegzulassen ?
Klar, in dem man es nicht ausgibt.


denks wohl bist komisch hahahahaha sehr komisch

kann mir bitte einer erklären (außer diesen komiker ) wie ich diese komma vor dem 8 weglassen kann. Die anderen kommas müssen aber bleiben nur der vor der muß weg .
mfg
 
du schreibst ernsthaft in den code rein:
System.out.print(","+zahl[zufall]);
und willst dann von uns wissen, wie man das komma weglässt? lol

übrigens gibt es einfachere wege, ein Array mit den zahlen 1 bis 49 zu füllen, z.b. eine for-Schleife.

for(int i=0;i<array.length;++i){
array = i+1;}

das ziehen der zahlen und das ausgäben wären auch nur 4 Zeilen, wenn du es in einer for-Schleife machst...
 
Schandro hat gesagt.:
du schreibst ernsthaft in den code rein:
System.out.print(","+zahl[zufall]);
und willst dann von uns wissen, wie man das komma weglässt?

übrigens gibt es einfachere wege, ein Array mit den zahlen 1 bis 49 zu füllen, z.b. eine for-Schleife.

for(int i=0;i<array.length;++i){
array = i+1;}


ich glaube ihr habt mich falsch verstanden . Die Konsol ausgabe ist

,8,12,45,47,56,47

ich möchte aber das nur der Komma vor 8 weg ist, die anderen sollen bleiben
 
Leute sorry ihr habt recht ich habe es falsch verstanden jetzt sehe ich 🙂))) Tut mir leid 😳


ok was ist mit diesem code wie kann ich hier den ersten komma vor der 1 auslassen ?

Code:
public class Schleife {
	
	public static void main(String[] args) {
		int schleifenVariable=1;

		//die Schleife
		while (schleifenVariable <= 10) {
			
			//der aktuelle Wert wird ausgegeben
			System.out.print(","+ schleifenVariable );
			
			//schleifenVariable wird erhöht
			schleifenVariable++;
		}
	}
}




Code:
Ausgabe ist in der Konsole 
,1,2,3,4,5,6,7,8,9,10

Das Komma vor der 1 soll weg , das kriege ich nicht hin .[/code]
 
mach ne if-Abfrage
wenn die schleifenVariable 1 ist, soll kein komma hin, ansonsten schon...

du könntest übrigens auch das schreiben: (ist üblicher und einfacher zu lesen)

for(int schleifenVariable=1;schleifenVariable <=10;++schleifenVariable ){
..
}

AUSSER du brauchst die schleifenVariable nach der schleife noch, dann ist deine Version besser.
(schleifenVariable wird zerstört sobald die Schleife fertig ist.)
 
warum versuchst du eig. in Java zu programmieren? irgendwie zweifel ich dran das du mal gut in programmieren sein wirst^^

naja, deine Sache. Musst dich jetzt auch net beleidigt fühlen, vllt. hab ich dich auch einfach nur zu sehr verwirrt.

hier die Lösung:

for(int schleifenVariable=1;schleifenVariable <=10;++schleifenVariable ){
if(schleifenVariable == 1){
System.out.print(schleifenVariable );}
else{
System.out.print( ", " + schleifenVariable );}
}
 
andere Lösungen:

Code:
String text = "";
for(int schleifenVariable=1;schleifenVariable <=10;++schleifenVariable ){
  text += "," + Integer.toString(schleifenVariable);
}
System.out.print( text .substring(1) );

oder

Code:
for(int schleifenVariable=1;schleifenVariable <=10;++schleifenVariable ){
  System.out.print( Integer.toString(schleifenVariable) + ((schleifenVariable<10) ? "," : "") );
}
 
Kleine Randbemerkung: Wenn man eine Schleife hat, die (zur Verdeutlichung) nicht von 0 bis 10 läuft, sondern von 0 bis 100000000, dann mancht man damit 9999999 unnötige Abfragen - NUR der erste oder letzte Durchlauf ist ein Sonderfall. Aber im allgemeinen ist das wurscht. (Die erste Sahce mit dem text und substring ist aber ... auch bei 10 durchläufen... nicht so schön :? )
 
und wie mach man es noch besser? (die erste Lösung spart unnütze Bed-prüfungen)
 
noch ein Nachtrag (nur weil ich mein vorheriges Post nicht editieren kann):

genau aus diesem Grund der Performance hat damals Sun den HotSpot Compiler entwickelt. Dieser soll (!) unperfomanten Java-Quellcode optimieren. Es ist also fraglich, welche Schreibweise im Java Quellcode tatsächlich besser oder schlechter ist. Vielleicht optimieren die Sun-Javac's beides auf das optimale Maß? 😀

(Wer's glaubt wird selig - wer nicht kommt auch in den Himmel)
 
Naja, bei 10 Durchläufen ist es noch egal, und auch wenn eine Stringverkettung "relativ" teuer ist, kann man davon ausgehen, dass das ganze nicht zeitkritisch ist (man sollte eigentlich immer davon ausgehen können, dass etwas nicht zeitkritisch ist, wenn ein System.out.println drin vorkommt). In bestimmten Fällen (nicht in diesem) KANN es aber sinnvoll sein, so ein Konstrukt zu verwenden wie
Code:
machWasBesonderesMit(0);
for (int i=1; i<n; i++) machWasNormalesMit(i);
oder eben entsprechend
Code:
for (i=0; i<n-1; i++) machWasNormalesMit(i);
machWasBesonderesMit(n-1);
 
Anonymous hat gesagt.:
kann mir bitte einer erklären (außer diesen komiker ) wie ich diese komma vor dem 8 weglassen kann.
mfg

Gerne doch:

Du kannst "dieses Komma vor der 8" weglassen, indem du es nicht ausgibst!

Jetzt klar? 😀
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben