TCL练习4:递归和return

练习递归实现阶乘计算以及return的使用方法。

 
proc recurrence { n } {
    if { ![string is integer $n] } {
        return -code error "This is not an integer!"
    }
 
    if { $n<=2 } {
        return $n
    } else {
        set val [expr $n*[recurrence [expr $n-1]]]
    }
 
    return $val
}

以上程序需要注意:

1. return可返回一个值,同时也可以返回错误代码和错误信息。本例练习了上述两种简单用法,如果返回错误及其错误信息,需要使用-code error。

2. TCL中如果要进行表达式求值,需要使用expr,否则表达式会被当作字符串处理。

set x 3

puts $x-1

此时$x表示变量的值,输出是3-1。

set x 3

puts [expr $x-1]

此时puts输出2。

3. 通过string is *可以判断string是否可被识别为指定类型,*可以为integer、boolean、ascii、alpha、alnum、double、graph、print、list、punct、upper、lower、xdigit、wideinteger、wordchar、false、true等等。

————————————————

版权声明:本文为CSDN博主「小苍蝇别闹」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:
https://blog.csdn.net/yinyeyy/article/details/115480220

原文链接:,转发请注明来源!