EinmalEins

V

Verzweilte

Gast
Hallo,
also ich bin am verzweifen..
ich habe diesen Code geschrieben, Aufgabe ist es das 1x1 auszugeben in der Form :
vorwärts
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81
10 20 30 40 50 60 70 80 90 100
rückwärts
100
90 81
80 72 64
70 63 56 49
60 54 48 42 36
50 45 40 35 30 25
40 36 32 28 24 20 16
30 27 24 21 18 15 12 9
20 18 16 14 12 10 8 6 4
10 9 8 7 6 5 4 3 2 1
also ohne doppelungen usw.
klappt soweit auch alles,
eigentliche aufgabe ist es aber die vorwärts berechnung anders zu erarbeiten. Die Zeilen sollen in einer while schleife ausgedrückt werden und die Spalten in einer For-schleife,
bei der rückwärts berechnung soll es dann genau andersherum sein.
egal wie ich es dreh und wende.. ich schaff es einfach nich.
Vielleicht kann mir jemand helfen. Wir sind erst am Anfang von Java, daher darf ich dabie auch keine besonderen dinge verwenden, die wir noch nicht hatten. also sollte es schon einfach gelöst werden können.
danke!
hier der code:

[]
public class jsd
{
public static void main( String[] args)
{
System.out.println("vorwärts");
int i = 1; // deklarieren(int) und initlisieren(1) der variable i
int j = 1; // deklarieren(int) und initlisieren(1) der variable i
// Aufgabe 3.1
// whie-Schleife zum Ausgeben der Multiplikation 1 * 1-10
//habe es ausgeklammert, da es in der Ausgabe der nächtes Teilaufgabe stört.
// while ( i <= 10 ) {
// System.out.print( " " + i*j);
// i++;
// }

//Aufgabe 3.2 Forschleife zum Ausgeben des kleinen 1x1, ohne Doppelungen
for( i = 1; i <= 10; i++)
{
for( j = 1; j <= 10; j++)
{

for ( i = 1; i <= j; i++)// Schleife, die die doppelten Rechnungen aussortiert mit i kleiner gleich j

System.out.print( " " + i * j ); // Hochzichen für Leerzeichen zwischen den Ergebnissen zur besseren Übersicht
System.out.println( ""); // Zeilenwechsel mit println

}
}
System.out.println("rückwärts");
//Aufgabe 3.2 Forschleife zum Ausgeben des kleinen 1x1, ohne Doppelungen

int z = 10; // deklarieren(int) und initlisieren(1) der variable i
int y = 10;

for( z = 10; z >= 1; z--)
{
for( y = 10; y >= 1; y--)
{

for ( z = 10; z >= y; z--)// Schleife, die die doppelten Rechnungen aussortiert mit i kleiner gleich j

System.out.print( " " + z * y ); // Hochzichen für Leerzeichen zwischen den Ergebnissen zur besseren Übersicht
System.out.println( "");
}
}
}
}
[/ Java]
 

blawa

Mitglied
hier das vorwärts mit while und for:
Java:
public class test1x1 {

    public static void main(String args[]) {
        int i=0,j=0;
        String s="";
        while(i<10) {
            i++;
            for(j=1;j<=i;j++) {
                s+=""+(i*j)+" ";
            }
            System.out.println(s);
            s="";
        }
    }

}
 
V

verzweifelte1

Gast
Wär auch cool, wenn du das kurz erklären könntest, wo hier der Unterschied zu meiner Version ist, denn laufen tut es bei mir ja auch.. werden jetzt mit den Schleifen die jeweiligen Zeilen/Spalten angesprochen?
Vielen Dank!
 

Landei

Top Contributor
Java:
    public static void main(String args[]) {
        for(int i = 1; i < 10; i++) {
            for(j = 1; j <= i; j++) {
                System.out.print("" + (i*j) + " ");
            }
            System.out.println();
        }
    }
 
V

verzweifelte2

Gast
Denn Code hab ich ja auch schon.. es geht darum, eine while schleife zu schreiben die für die zeilen und eine for, die für die spalten zuständig ist und andersherum..
 

Landei

Top Contributor
Jede for-Schleife ist zu einer while-Schleife äquivalent, in Pseudo-Code:

Code:
for(Initialisierung; Bedingung; Änderung) {
   Irgendwas
}

ist dasselbe wie:

Code:
Initialisierung
while(Bedingung) {
   Irgendwas
   Änderung
}

Wo ist da die Schwierigkeit?
 

agentone

Bekanntes Mitglied
Wie Landei schon erklärt hat, sind alle Schleifen letztlich gleich, können also ineinander übergeführt werden.
for-Schleifen benutzt man meistens, wenn man die Anzahl der Durchläufe bereits kennt.
while-Schleifen, wenn es eine klare Abbruchbedingung gibt und die Schleife möglicherweise nie durchlaufen werden muss.
do-while-Schleifen benutzt du ähnlich wie while-Schleifen, werden aber immer mind. 1 mal durchlaufen.

Vermutlich solltet ihr also einfach ein bisschen mit den Schleifen üben, denn in der Praxis ist es dem Programmierer überlassen, welche Schleife er für welche Problemstellung benutzt.
 

Ähnliche Java Themen


Oben