我正在尝试使用条件语句,如果N甚至做某事,否则做其他事情。 以下是我的代码的一部分:
(N,Lines,1):-write(N),nl,
( mod(N,2) = 0 ->
write('Hello'),nl,write('Again Hello')
;
foo(N,Lines)
).
但是,即使我给N = 6,它也会进入foo(N,Lines)
,即其他部分。它不会进入部分。有人可以告诉我哪里错了吗?
答案 0 :(得分:1)
而不是将其写为mod(N,2) = 0
,而不是写0 is mod(N,2)
或0 =:= mod(N,2)
(就像在评论中说的那样)
像:
write(N),nl,
( 0 is mod(N,2) ->
write('Hello'),nl,write('Again Hello')
;
foo(N,Lines)
).
如果N=6
,就像你的例子一样,我得到:
6
Hello
Again Hello
true.
prolog算术here有一些例子。