GNU BC:函数,if-clauses和return

时间:2009-08-28 09:37:11

标签: bc

问题出在代码的评论中:

define f(x) {
print x^2
}
define g(x) {
print x+2
}
if(f(2)>g(1)) {
print "it works"
}
43         # Why 43 instead of the text "it works"?

a=f(2)
b=g(1)

if(a>b) {
print "it works"
}          
          # Why nothing?

1 个答案:

答案 0 :(得分:2)

您的功能仅打印他们计算的内容。他们不会返回结果。

因此,当您调用f(2)时,f将打印4,当您调用g(1)时,g将打印3。

以这种方式尝试:

define f(x) {
    return x^2
}
define g(x) {
    return x+2
}
if(f(2)>g(1)) {
    print "it works"
}


a=f(2)
b=g(1)

if(a>b) {
    print "it works"
}