Nand2Tetris — 第 9 章
Jack高级语言
// Main.jack
//简单的杰克程序
//移动:
//如果在等待键盘输入时按任意键,则数字加 1 并输出。
//按 q 退出程序
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
//具有字段值的示例类
//在构造函数中创建一个对象并在方法中更改 this 值。
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;
}
}