0
checkChar :-
    nl,
    write('Enter a character [press 0 to stop]: '),
    get(X),
    process(X).

process(X) :-
    S = put(X),
    0 == S,
    !.

process(X) :-
    write('ASCII code for <'),
    put(X),
    write('>:'),
    write(X),
    checkChar.

用户可以输入他们想要的任何内容,prolog 会将字符转换为 ASCII 码并显示出来。如果输入 0,prolog 将停止执行,但除了直接与 ASCII 48 相比,我还能如何做到这一点?(ASCII 48 = 0)这是我尝试过的,但是一旦我输入 0,它仍然无法停止。

4

1 回答 1

1

我认为这可能是您正在寻找的:

checkChar :-
    nl,
    write('Enter a character [press 0 to stop]: '),
    get(X),
    process(X).

process(X) :-
    X =\= "0",
    write('ASCII code for <'),
    put(X),
    write('>:'),
    write(X),
    checkChar.
于 2014-04-24T13:37:08.123 回答