Ausgabe von einem Buchstaben

Hallo,
dass es falsch war, stimmt, allerdings die erste for-Schleife (sorry) ...
Wie Du allerdings auf Deine Ausgabe kommst, kann ich so nicht nachvollziehen!

Code:
char buchstabe = 'A';
int iAnzZeilen = 5;
StringBuffer sb = new StringBuffer();
for( int i = 1; i <= iAnzZeilen; i++)   // hier anpassen !!
{
    for( int j = 1; j < (i*2); j++ )
    {
        sb.append(buchstabe);
    }
    System.out.println( sb.toString() );
}

"i" läuft von 1 bis 5 und "j" jedesmal von 1 an solange, wie es kleiner "i*2" ist, also:
Code:
i = 1, j genau einmal  ==> A
i = 2, j von 1 bis 3  ==> AAA
i = 3, j von 1 bis 5  ==> AAAAA etc.

Gruß
Klaus
 
Hi, nur nochmal als Frage: Du willst doch die nächsthöhere, ungerade Zahl, also:
1,3,5,7,9...

Ausgabe:

A
AAA
AAAAA
AAAAAAA
AAAAAAAAA

macht genau das?
 
genau - ich produziere hier seit Stunden nix anderes als entsprechende A's :)

Poste andernfalls mal die exakte Aufgabenstellung UND Deinen aktuellen Code ....
 
ja das ist die aufgabe.
es soll immer die nächst höhere ungerade Zahl darstellen.

Als ich dein code versucht habe kam ne fehler Meldung das isEven nicht geht
es ist auch rot unterstrichen.
Schreiben Sie ein weiteres Programm welches die folgende Ausgabe
erzeugt:
A
AAA
AAAAA
AAAAAAA
AAAAAAAAA
Wobei der Buchstabe sowie die Zeilenzahl flexibel (variabel) sein soll
 
Zuletzt bearbeitet:
isEven(...) kann auch nicht gehen, wenn man die Hilfsmethode (siehe mein Posting)
nicht mit einbindet:

Code:
	public static boolean isEven(Integer integer){
		
		if ( integer.intValue() % 2 == 0 ){            	
       	                  return true;
                }
		 return false;
       }

:suspekt:
 
Also entspricht doch mein Code-Schnipsel im Prinzip genau Deiner Aufgabenstellung!!
Du musst jetzt nur noch statt festen Werten für den Buchstaben und die Zeilenanzahl, diese von der Tastatur in die entsprechenden VARs einlesen ..... :)

Kein Grund, gleich aufzugeben :suspekt:

Gruß
Klaus
 
Uhm... nein?
es sind ja keine feste werte in deinem Code.
allerdings wenn ich bei deinem code den wert fürs i von 1 auf 4 oder 5 ändere stimmen die zwei zeilen die ausgegeben werden bei 3 hört es allerdings wieder auf.

ich habe es ja auch schon versucht gehabt es so zu machen also das j < i*2 ist aber das ignoriert es irgendwie
siehe code
Code:
int i,j;

		char buchstabe = 'A';
		int zeilenAnzahl = 5;
		
		StringBuffer sb = new StringBuffer();
			for (i=0; i<=zeilenAnzahl; i++)
			{
				
				for (j=0; j<i*2; j++)
				{
				
					
					sb.append(buchstabe);
					
					}
				System.out.println(sb.toString());
so habe ich es auch versucht mit ner if noch dazu
Code:
...
	for (j=0; j<i; j++)
				{
					if (j>i*2)
					{
						j=j-1;
					}
					
					sb.append(buchstabe);
					
					}
				System.out.println(sb.toString());
			
			}
 
Zuletzt bearbeitet:
nee, ist ja auch klar!!
Schau mal oben in den Post #11!!
Dort stand:
Code:
for( int i = 1; i <= iAnzZeilen; i++)   // hier anpassen !!

Ok, hätte ich wohl deutlicher betonen müssen, aber ich dachte, das das Beispiel dazu reicht :eek:
Also: die erste Schleife MUSS bei 1 anfangen!! Andernfalls ist doch klar, dass Deine grüne Zeile Mist macht, da 0*2 eben immer 0 ist und mithin j in der zweiten Schleife von 0 bis 0 läuft!! Und die erste Zeile wird ja wohl logisch die Nummer 1 haben, oder
Sicher kann man i auch von 0 an laufen lassen, aber dann muss eben in der inneren Schleife immer mit i+1 gearbeitet werden, um dort die richtigen Werte zu haben!

Ist vielleicht nur optische (oder Geschmacks-) Sache, aber ich bevorzuge es aus Gründen der Lesbarkeit des Code immer, die VAR's so nahe wie möglich an der dahinterliegenden Logik laufen zu lassen! Und wenn ein Wert eben von 5 - 15 gehen kann, dann eben auch die zugehörige Schleife

So, ich hoffe, ich habe das jetzt etwas verständlicher ausgedrückt und Du kommst damit klar :)

tschüss
Klaus
 
ich verstehe gerade gar nichts mehr ich glaube ich mache mal eine pause sitze schon seit 9:45 uhr an der aufgabe :/

Ja es klingt logisch
Und wenn ich dich richtig verstanden habe muss der code so heißen
Code:
...
for (i=1; i<=zeilenAnzahl; i++)
			{
				
				for (j=1; j<(i*2); j++)
					{
			
						sb.append(buchstabe);
					
					}
				System.out.println(sb.toString());
Wenn das der Fall ist, dann sag ich dir die Ausgabe lautet
A
AAAA
AAAAAAAAA
AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAA
 

Neue Beiträge

Zurück