erklärung von code

anna93

Mitglied
Es handelt sich um ein Beispiel wo es x Gefängnisse gibt. Zu erst wird jede Zelle aufgesperrt. Bei jedem "vorbei gehen" wird eine Zelle zu oder auf gesperrrt. Nach der jede 2(2,4,6,8,10..) , dann jede 3(3,6,9...) dann jede 4 bis zu x.
Wir haben in der schule diesen code aufgeschrieben

public static void main(String[] args) {

String haeftlinge = javax.swing.JOptionPane.showInputDialog("Geben Sie die Anzahl der Häftlinge ein:");
int zellen = Integer.parseInt(haeftlinge);

System.out.println("Zellen: "+zellen);

int n[] = new int[ zellen + 1 ];
int i, j;
for (i = 0; i < zellen; i++)
n = -1;
for (i = 0; i < zellen; i = i + 1)
for (j = 0; j < zellen + 1; j = j + (i + 1))
n[j] = n[j] * (-1);
for (i = 0; i < zellen; i++) {
if (i == 1)
i++;
if (n == 1)
System.out.println("Offene türen Sind: " + i);

Nun zu meiner Frage: uns allen is dieser Code unklar. Welche variable steht jetzt für was? Und wieso muss man n= -1 hinschreiben?

Vielen dank im voraus
gruß :)
 

rme

Top Contributor
Hallo :)

Dann mal der Reihe nach:

Java:
public class Dungeon {
    public static void main(String[] args) {

        // Nutzer nach Anzahl der Häftlinge fragen und in "zellen" speichern, d.h. zellen = anzahl
        String haeftlinge = javax.swing.JOptionPane.showInputDialog("Geben Sie die Anzahl der Häftlinge ein:");
        int zellen = Integer.parseInt(haeftlinge);

        // Anzahl der Zellen nochmal ausgeben
        System.out.println("Zellen: " + zellen);

        // legt Array zum Speichern der Zustände der Zellen an, wobei eine
        // Zelle mehr angelegt wird, als es Häftlinge gibt
        // In dem Array wird -1 gesetzt, falls eine Zelle geschlossen ist und
        // 1, falls sie geöffnet ist - auf diese Weise kann man durch Multiplikation
        // mit -1 den Zustand hin- und herwechseln
        int n[] = new int[zellen ];


        // Hilfsvariablen für die Schleifen
        int i, j;

        // Diese Schleife setzt alle Zellen erstmal auf geschlossen (-1)
        for (i = 0; i < zellen; i++)
            n[i] = -1;

        // die beiden Schleifen sorgen dafür, dass die aufgabe so erfüllt wird:
        // die äußere Schleife gibt die "Sprungweite" an, d.h. am Anfang jede
        // Zelle (i = 0), dann jede 2. (i = 1), jede 3. (i = 2) usw.
        // Die innere Schleife führt dann das eigentliche Wechseln aus:
        // Es wird auch von 0 bis zur Anzahl der Zellen gegangen, aber bei jedem
        // Durchlauf wird j nicht um 1 erhöht (was jede Zelle in jedem Durchlauf
        // wechseln würde), sondern noch i addiert, damit Zellen übersprungen werden
        for (i = 0; i < zellen; i = i + 1)
            for (j = 0; j < zellen + 1; j = j + (i + 1))
                n[j] = n[j] * (-1); // schaltet zwischen offen und geschlossen

        // Die Schleife zählt, wie viele Zellen am Ende offen sind
        for (i = 0; i < zellen; i++) {
            // das verstehe ich auch nicht ganz - hat wohl was damit zu tun, dass
            // eine Zelle mehr als nötig angelegt wurde, die wird hier übersprungen
            if (i == 1)
                i++;
            // falls zelle offen -> ausgeben, dass sie offen ist
            if (n[i] == 1)
                System.out.println("Offene türen Sind: " + i);
        }
    }
}

Hat das ein bisschen geholfen? Alles verstehe ich da um diese Uhrzeit auch nicht mehr :)
 

rme

Top Contributor
Glaube nicht, denn hier wird ja nicht dauerhaft -1 gesetzt, sondern immer wieder zwischen den Zuständen gewechselt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
JaZuDemNo Code Erklärung Java Basics - Anfänger-Themen 3
I Erklärung zum Java Code Java Basics - Anfänger-Themen 2
H Primzahltest : Erklärung zum Code Java Basics - Anfänger-Themen 2
M Erklärung Code Mergesort Bitte Java Basics - Anfänger-Themen 3
S Code-Erklärung Java Basics - Anfänger-Themen 4
M Erklärung von Ausnahmebehandlung in Methoden Java Basics - Anfänger-Themen 13
S Erklärung BufferedReader und InputStreamReader Java Basics - Anfänger-Themen 4
S Erklärung zur Methode und array Java Basics - Anfänger-Themen 12
I Array in umgekehrter Reihenfolge - Erklärung - Java Basics - Anfänger-Themen 3
KogoroMori21 Erklärung zum Ternären Operator Java Basics - Anfänger-Themen 4
D Erklärung Java Basics - Anfänger-Themen 3
A Erklärung Programm zur Kreisberechnung Java Basics - Anfänger-Themen 43
S Bitweise Operatoren" >>>",">>","<<" erklärung Java Basics - Anfänger-Themen 5
D Erklärung eines Satzes Java Basics - Anfänger-Themen 0
M Erklärung: Int IndexOf (String s) Java Basics - Anfänger-Themen 3
C Methoden erklärung Java Basics - Anfänger-Themen 8
W FileReader - Bitte um Erklärung Java Basics - Anfänger-Themen 7
E Erste Schritte Gute Erklärung zu Objekten / Klassen / Methoden / Sichtbarkeiten auf Deutsch Java Basics - Anfänger-Themen 3
D Erklärung static boolean Java Basics - Anfänger-Themen 6
J Bitte um Erklärung Java Basics - Anfänger-Themen 4
C Polymorphie - Erklärung bitte Java Basics - Anfänger-Themen 5
O Über Map laufen Erklärung Java Basics - Anfänger-Themen 4
N While Schleife Erklärung Bitte Java Basics - Anfänger-Themen 3
B Benötige Erklärung für Lösungsansatz Java Basics - Anfänger-Themen 0
M web.xml Abschnitt Erklärung Java Basics - Anfänger-Themen 2
Z Fibonacci rekursiv meine Erklärung stimmt so? Java Basics - Anfänger-Themen 2
A DezimalZuBinär - Erklärung der Vorgehensweise des Programms Java Basics - Anfänger-Themen 4
Z Fibonacci Array Erklärung Java Basics - Anfänger-Themen 5
K Erste Schritte Datenbank SQL erklärung Java Basics - Anfänger-Themen 15
H Methoden Bitte um Erklärung der askString-Methode Java Basics - Anfänger-Themen 15
G Erklärung .next Java Basics - Anfänger-Themen 4
D Erklärung Kalenderwoche Java Basics - Anfänger-Themen 14
T Erklärung zur Methode, Modulator Java Basics - Anfänger-Themen 3
V Objekte/Klassen erstellen - Erklärung anhand Beispiel Java Basics - Anfänger-Themen 4
P Methoden Erklärung wie ich eine spezielle Methode richtig anwende Java Basics - Anfänger-Themen 9
S Threads Erklärung ReentrantLock Java Basics - Anfänger-Themen 6
B Kleine Erklärung zu einer Codezeile benötigt Java Basics - Anfänger-Themen 5
G Bitte um Erklärung dieser einer Zeile Java Basics - Anfänger-Themen 5
R Interpretation/Erklärung main Java Basics - Anfänger-Themen 4
Helgon Polymorphie Generischer Methodenkopf - Erklärung Java Basics - Anfänger-Themen 3
W OOP Konstruktoren Erklärung Java Basics - Anfänger-Themen 14
E Quellcode Erklärung Java Basics - Anfänger-Themen 8
R Vererbung Bitte um Erklärung - Instanzvariablen Java Basics - Anfänger-Themen 8
A Java Erklärung? Java Basics - Anfänger-Themen 4
D Beans Erklärung Java Basics - Anfänger-Themen 11
Q Klausur aufgabe Erklärung Java Basics - Anfänger-Themen 12
G Bitte um Erklärung Java Basics - Anfänger-Themen 9
O Erklärung für Pattern Java Basics - Anfänger-Themen 5
K gute erklärung Java Basics - Anfänger-Themen 5
Screen Erklärung von der Umwandlung von .class in .jar o. .exe ! Java Basics - Anfänger-Themen 5
Spin Taschenrechner - Erklärung Java Basics - Anfänger-Themen 9
J Bitte um Erklärung für einen Java-Ausdruck Java Basics - Anfänger-Themen 8
M enhanced for - erklärung Java Basics - Anfänger-Themen 3
K Erklärung der Syntax Java Basics - Anfänger-Themen 6
R Erklärung bitte Java Basics - Anfänger-Themen 3
G Erklärung for-Schleife bei Strings Java Basics - Anfänger-Themen 4
tobiasbeil Fehler array initialisierung. Nur erklärung bitte. Java Basics - Anfänger-Themen 2
W Programm erklärung Java Basics - Anfänger-Themen 7
F Threads - Erklärung und Beispielprogramm Java Basics - Anfänger-Themen 4
D Erklärung für eine Abfrage. Java Basics - Anfänger-Themen 9
D Eine Erklärung für eine 3D-Schleife bitte. :) Java Basics - Anfänger-Themen 4
B [suche erklärung] - sicherheit beim login Java Basics - Anfänger-Themen 3
M Code aus IntelliJ in "Textform" für Word-Paper? Java Basics - Anfänger-Themen 10
T Kann mir jemand wörtlich erklären, was in dem Code genau passiert? Java Basics - Anfänger-Themen 1
Ü Dead Code im Programm? Java Basics - Anfänger-Themen 13
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
terashy VS Code Project run error Java Basics - Anfänger-Themen 10
M Connect-4-Code analysieren Java Basics - Anfänger-Themen 2
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
W In alten Code zurück- und dort wieder zurechtfinden? Java Basics - Anfänger-Themen 17
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
T Fehlercode bei code der das Alter ausrechnet Java Basics - Anfänger-Themen 2
T Text einlesen code was kommt dahin? Java Basics - Anfänger-Themen 1
jhfjeh Strukturgramm in code Java Basics - Anfänger-Themen 11
D Tipps zum Code Java Basics - Anfänger-Themen 24
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
W Java-code Java Basics - Anfänger-Themen 8
W Java-code Java Basics - Anfänger-Themen 9
W Java-Code erklären Java Basics - Anfänger-Themen 6
ohneInformatik; For Schleife. Was macht dieser Code?? Java Basics - Anfänger-Themen 5
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
Say Stelle in Code herausfinden, wie geht man vor? Java Basics - Anfänger-Themen 12
Say do-While Code Ausführung Java Basics - Anfänger-Themen 3
W Rückfrage zur Programmgestaltung (clean code) Java Basics - Anfänger-Themen 12
M intelliJ auf neuem PC, plötzlich kein Code Java Basics - Anfänger-Themen 3
Pinhg Sound in Greenfoot Code einbinden Java Basics - Anfänger-Themen 2
C Java boolean Code läuft nicht Java Basics - Anfänger-Themen 5
I Code für Bezahlsystem (auch bei Offline Aktivität) Java Basics - Anfänger-Themen 7
J Größter gemeinsamer Teiler: mein Code Java Basics - Anfänger-Themen 6
B Den Dateipfad einer Java Datei durch Code in Selbiger finden? Java Basics - Anfänger-Themen 10
A Wie könnte man diesen Code kürzer machen ? Java Basics - Anfänger-Themen 7
J Frage zu meinem Code (OOP) Java Basics - Anfänger-Themen 4
Alen123 Warum funktioniert mein Code nicht? Java Basics - Anfänger-Themen 64
Max246Sch Frage zu Währungsrechner Code Java Basics - Anfänger-Themen 2
S Hilfe bei Umänderung von Java Code Java Basics - Anfänger-Themen 16
I Code wird nicht ausgeführt Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben