← SEARCHABLE ARCHIVE
Nand2Tetris · 2026-05-21

Nand2Tetris — Kapitel 9

Die Hochsprache Jack

INTERACTIVE READING MODE →

// Main.jack
//Einfaches Jack-Programm
//Bewegung:
//Wenn Sie während des Wartens auf eine Tastatureingabe eine beliebige Taste drücken, wird die Zahl um 1 erhöht und ausgegeben.
//Drücken Sie q, um das Programm zu verlassen

class Main {
    function void main() {
        var int count;
        var char key;

        let count = 0;

        do Output.printString("Nand2Tetris Jack Test");
        do Output.println();
        do Output.printString("Press any key. q is quit.");
        do Output.println();

        while (true) {
            let key = Keyboard.keyPressed();

            if (key = 113) {
                return;
            }

            if (~(key = 0)) {
                let count = count + 1;
                do Output.printString("count = ");
                do Output.printInt(count);
                do Output.println();

                while (~(Keyboard.keyPressed() = 0)) {
                    do Sys.wait(1);
                }
            }

            do Sys.wait(1);
        }

        return;
    }
}
// Counter.jack
//Beispielklasse mit Feldwerten
//Erstellen Sie ein Objekt im Konstruktor und ändern Sie den Wert this in der Methode.

class Counter {
    field int value;

    constructor Counter new() {
        let value = 0;
        return this;
    }

    method void inc() {
        let value = value + 1;
        return;
    }

    method int get() {
        return value;
    }

    method void dispose() {
        do Memory.deAlloc(this);
        return;
    }
}