Geschachtelte Kontrollstrukturen

FiselM

Mitglied
Hallo, Ich habe das Problem das ich mit dem Code untenstehend eine
linsbündige Ausgabe erzeuge mit folgendem Muster

1111111111
2222222222
3333333333
usw.

Jedoch sollte die Ausgabe die folgende

1
22
333
4444
55555
666666
7777777
88888888
999999999

Ich habe schon Stundenlang experimentiert mi do .. while und if Konstrukten
aber ich komme nicht auf den draht?

Bitte Hilfe

class Kontroll
{
public static void main (String args[])
{

System.out.println("Linksbündige Ausgabe");
System.out.println("Zahlen");

for (int Betrag = 1; Betrag <= 9; Betrag++)
{
//System.out.print(Betrag);
for (int wert = 1; wert <= 9; wert++)
// while (Betrag = wert)


System.out.print
( Betrag);

System.out.println();

}

}

}
 
Ich habe die Lösung doch noch selber entdeckt.

for (int Betrag = 1; Betrag <= 9; Betrag++)
{
//System.out.print(Betrag);
for (int wert = 1; wert <= Betrag; wert++)
// while (Betrag = wert)

War der Fehler versteckt

Jetzt versuche ich das gleiche mit Buchstaben mit meinem Namen M i c h a e l F i
sollte das Ergebnis
M
ii
ccc
hhhh
aaaaa
eeeeee
usw .
den Name vertikal auszugeben
 
Ich habe die Lösung doch noch selber entdeckt.

for (int Betrag = 1; Betrag <= 9; Betrag++)
{
//System.out.print(Betrag);
for (int wert = 1; wert <= Betrag; wert++)
// while (Betrag = wert)

War der Fehler versteckt

Jetzt versuche ich das gleiche mit Buchstaben mit meinem Namen M i c h a e l F i
sollte das Ergebnis
M
ii
ccc
hhhh
aaaaa
eeeeee
usw .
den Name vertikal auszugeben
 
Wenn ich die Pyramide mit Buchstaben statt mit Zahlen Aufbaue funktioniert das nicht richtig
muß ich da was beachten?
 
Wenn ich die Pyramide mit Buchstaben statt mit Zahlen Aufbaue funktioniert das nicht richtig
muß ich da was beachten?
 
Was genau funktioniert denn nicht? Funktioniert nicht richtig kann alles sein.

MFG

zEriX
 
Mein Ansatz ist mit der "Switch" Form die Lösung zu finden

for (char Betrag1 = 1; Betrag1 <= 9; Betrag1++)
{
switch (Betrag1){
case 1: Betrag1 = 'M'; break;
case 2: Betrag1 = 'i'; break;
case 3: Betrag1 = 'c'; break;
case 4: Betrag1 = 'h'; break;
case 5: Betrag1 = 'a'; break;
case 6: Betrag1 = 'e'; break;
case 7: Betrag1 = 'l'; break;
case 8: Betrag1 = 'F'; break;
case 9: Betrag1 = 'i'; break;
}


//System.out.print(Betrag);
for (char wert1 = 1; wert1 <= Betrag1; wert1++)
// while (Betrag = wert)


System.out.print
( Betrag1);
System.out.println();

}

Aber er bringt mir nur den ersten Buchstaben M?
 
Lösung ist

System.out.println();
System.out.println();
System.out.println();
System.out.println("Name Vertikal");

for (int Betrag1 = 1; Betrag1 <= 9; Betrag1++)
{
char Betrag2 = ' ';
switch (Betrag1){
case 1: Betrag2 = 'M'; break;
case 2: Betrag2 = 'i'; break;
case 3: Betrag2 = 'c'; break;
case 4: Betrag2 = 'h'; break;
case 5: Betrag2 = 'a'; break;
case 6: Betrag2 = 'e'; break;
case 7: Betrag2 = 'l'; break;
case 8: Betrag2 = 'F'; break;
case 9: Betrag2 = 'i'; break;
}


//System.out.print(Betrag);
for (int wert1 = 1; wert1 <= Betrag1; wert1++)
// while (Betrag = wert)


System.out.print
( Betrag2);
System.out.println();

}

So geht es mit der Vertikalen Ausgabe.

Jetzt suche ich noch eine Lösung mit der horizontalen Ausgabe des Namens
wie

M
Mi
Mic
Mich
...........
 
Wie aufwändig .. ich würd das ganze mit nem String lösen.

Code:
String name = "MichaelFi";
int i;
for(i=0; i<name.length(); i++)
{
    int c=0;

    for(c=0; c<=i; c++)
    {
        System.out.print(name.charAt(i));
    }
    System.out.println();
}

Ich weiss nicht, ob ich das 100% korrekt habe, weil ich eigentlich kein Java programmiere, aber vom prinzip isses richtig. Und ... ich würde dir jetzt den Tipp geben, eindetigere Variablennamen zu verwenden, aber ich denke, ich sollte da mal schnell leise sein ;)

Paul
 
Zurück