Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Union_Freedom

Treue Seele

  • »Union_Freedom« ist der Autor dieses Themas

Beiträge: 156

Wohnort: Nähe Hannover

Beruf: Student

  • Private Nachricht senden

1

21.02.2013, 18:48

Verschachtelte Schleifen

Hallo,

vielleicht stehe ich gerade extrem auf dem Schlauch, aber mir will folgendes einfach nicht verständlich erscheinen

Ich möchte in Java mit drei Schleifen hochzählen. Dabei soll die äußerste Schleife je um 6, die mittlere je um 9 und die innerste je um 20 erhöht werden.

Der Code ist Java

C#-Quelltext

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
        long Counter = Offset;

        long packges = 0;
        
        while(shouldrun)
        {
            for(long pack6 = 0; pack6 <= Counter; pack6 += 6 )
            {
                for(long pack9 = 0; pack9 <= Counter; pack9 += 9)
                {
                    for(long pack20 = 0; pack20 <= Counter; pack20 += 20)
                    {
                      
                        packges = pack20 + pack6 + pack9;
                        
                        System.out.println("Teste : " + pack6 + " " + pack9 + " " + pack20 + " Counter : " + Counter );
                        
                    }
          
                }
            }
                

            packges = 0;
            Counter +=  Offset;
        }
    }



SO geht auch alles. Ich möchte aber versuchen nur bis zum Counter der gesamten Summe hochzuzählen: Also sowas

C#-Quelltext

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
        long Counter = Offset;

        long packges = 0;
        
        while(shouldrun)
        {
            for(long pack6 = 0; pack6 <= Counter; pack6 += 6 )
            {
                //HIER WÜRDE ES REICHEN; WENN BEI pack9+pack6 <= Counter abgebrochen wird
                for(long pack9 = 0; pack9 <= Counter; pack9 += 9)
                {
                    //ÄNDERUNG - REICHT WENN DIE INNERE HIER ABRICHT
                    for(long pack20 = 0; packges <= Counter; pack20 += 20)
                    {
                      
                        packges = pack20 + pack6 + pack9;
                        
                        System.out.println("Teste : " + pack6 + " " + pack9 + " " + pack20 + " Counter : " + Counter );
                        
                    }
          
                }
            }
                

            packges = 0;
            Counter +=  Offset;
        }
    }


Wenn ich das nun durchlaufen lasse, funktioniert bei dem ersten Codeausschnit alles so wie es soll. Bei dem zweiten Allerdings zählt er nur die innere Schleife hoch, scheint dann aus allen drei rauszuspringen und den Counter zu erhöhen.


Stehe ich gerade auf dem Schlauch?

Danke :)

MfG
Union_Freedom
Coder bei: http://crushing-gods.de/ (Folgt uns)
Erste Eindrücke zu Crushing Gods Link

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

21.02.2013, 20:01

Sorry, aber außer den Kommentaren sehe ich da jetzt keine Unterschiede.
Außerdem sehe ich nur eine einzige Frage, deren Antwort ich mir mal verkneife ;)
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

3

21.02.2013, 20:04

Abbruchbedingung der innersten Schleife ist anders ;)

Mastermind

unregistriert

4

21.02.2013, 20:27

Abbruchbedingung der innersten Schleife ist anders ;)


Ist aber somit auch klar, was das Problem ist.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

5

21.02.2013, 20:43

Wenn er den Debugger nutzen würde, würde er's vielleicht sogar verstehen...
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Union_Freedom

Treue Seele

  • »Union_Freedom« ist der Autor dieses Themas

Beiträge: 156

Wohnort: Nähe Hannover

Beruf: Student

  • Private Nachricht senden

6

21.02.2013, 22:11

Argh.. ich hab eine Zeile vergessen.. nach der inneren Schleife packges wieder auf 0 zu setzen... Sorry für die Frage. So einfach kanns gehen. War heute den ganzen Tag am Lernen und habs einfach nicht gesehen... Für das was ich studiere, muss ich mich jetzt echt schämen...
Coder bei: http://crushing-gods.de/ (Folgt uns)
Erste Eindrücke zu Crushing Gods Link

7

22.02.2013, 10:03

Für das was ich studiere, muss ich mich jetzt echt schämen...

Hahahaha, ja.

Obwohl: Wer noch keine dämlichen Fehler gemacht hat, der hat noch nie etwas vernünftiges programmiert. Und auch nach 10 Jahren macht man noch dämliche Fehler, vielleicht etwas weniger doofe, aber beim Debuggen denkt man dann doch regelmäßig "wie konnte ich nur".
Man muss in gewisser Weise über seinem eigenen Ego stehen und nicht auf die eigenen Fehler sehen, sondern auf das, was man aus ihnen gelernt hat. Dämliche Fragen gehören zum Klügerwerden eben dazu :D
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige