F#中非常简单的循环

meh*_*lim 2 f#

我在FSI和VS2010都尝试了这个.它们给出了相同的输出.

for i= 8 to 10 do
    for j=7 to 10 do
    let product=i*j
    printfn "%d * %o = %x" i j product
Run Code Online (Sandbox Code Playgroud)

输出是:

8*7=38
8*10=40
8*11=48
8*12=50
9*7=3f
9*10=48
9*11=51
9*12=5a
10*7=46
10*10=50
10*11=5a
10*12=64
val it : unit = ()
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

我尝试通过在线教程学习编程(使用F#因为我喜欢它).

Ric*_*lay 12

输出对我来说似乎是正确的,因为你正在格式化输出i,j并分别product在decimal(%d),octal(%o)和hex(%x)中.

数字7,8,9和10被格式化为7,10,11和12,因为这是它们的八进制表示.将它们全部更改为%d%i解决问题.


Dar*_*rio 5

猜猜是关于格式化字符串的printfn.试试吧%i.

for i = 8 to 10 do
    for j = 7 to 10 do
        let product=i*j
        printfn "%i * %i = %i" i j product
Run Code Online (Sandbox Code Playgroud)


Kyl*_*utt 5

是.你错过了什么.10(十进制)*10(八进制)= 50(十六进制).%d表示十进制,%o表示八进制,%x表示十六进制.如果您不知道它们是什么,请谷歌.

以下是所有相同的陈述.

十进制:

10*8 = 80.

八进制:

12*10 = 120

十六进制:

a*8 = 50.

在复制之前请仔细查看.

  • 那最后的评论真的需要吗? (8认同)