F#入门-第二章 F#基础-第九节 while循环

    如果要重复执行一段表达式的话,除了for循环的方法之外,还有while循环的方法。
    while循环为,当表达式1的条件成立时,重复执行表达式2。

while循环
while语句 := while 表达式1 do 表达式2 done


    如果利用下一节中介绍的引用类型,可以编写C语言当中经常出现的如下循环。

循环显示1到10
let a = ref 0 in
while !a < 10 do
         a := !a + 1;
         print_int !a
done;;


    这类情况下,如果使用引用类型,会比较令人难以理解,同时也容易引起Bug。
    以上这段程序,可以采取如下所示的简便写法。

F#中循环的处理
List.iter print_int [1..10]


    List.iter使用两个参数,第一个参数为带1个参数的函数,第二个参数为列表。
    处理的时候,用[1..10]将1到10之间的数字创建列表,再用List.iter将列表中每个数字作为print_int函数的参数,循环调用print_int函数显示该数字。

    在包括F#的所有函数型语言中,使用了许多类似iter函数的函数,用来执行对列表或数组的处理。如果用惯了这些函数,就会少用很多while之类的循环。

    如果使用while,可能会造成永远不会终止的死循环,所以必须要加以注意。

死循环
while true do print_endline "never finish" done;;
posted @ 2010-10-03 16:31  至尊无上  阅读(520)  评论(0)    收藏  举报