F中非常简单的循环#
我在FSI和VS2010中都试过这两种。两种都给出相同的输出。F中非常简单的循环#
for i= 8 to 10 do
for j=7 to 10 do
let product=i*j
printfn "%d * %o = %x" i j product
,输出是:
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 =()
我失去了一些东西?
我尝试通过在线教程学习编程(使用F#,因为我喜欢它)。
是的。你错过了一些东西。 10(十进制)* 10(八进制)= 50(十六进制)。 %d表示十进制,%o表示八进制,%x表示十六进制。如果你不知道它们是什么,请将它们放到Google上。
以下是所有相同的说明。
在十进制:
10 * 8 = 80。
在八进制:
12 * 10 = 120
在十六进制:
一个* 8 = 50。
在复制之前请仔细看看。
最后的评论真的需要吗? – 2010-01-27 18:11:03
猜猜这是格式化字符串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
非常感谢。希望人们不介意这样简单的问题! – mehmetselim 2010-01-27 15:26:22
最后的标识符应该是'%i',而不是'i%' – 2010-01-27 15:26:57
@Richard Szalay:是的 – Dario 2010-01-27 15:35:17
输出似乎是正确的我,因为你分别格式化的i
,j
和product
十进制输出(%d
),八进制(%o
)和十六进制(%x
)。
数字7,8,9和10被格式化为7,10,11和12,因为那是他们的八进制表示。将它们全部更改为%d
或%i
以解决该问题。
需要注意的是在printf格式说明符的文档是在这里
http://msdn.microsoft.com/en-us/library/ee370560(VS.100).aspx
(虽然截至今天,该文件的格式是有点搞砸了,很难看)
有是一些关于学习编程的优秀在线书籍。我会找到并阅读它们,而不是试图学习通过“教程”进行编程。教程并没有教你如何编程,虽然它们通常对提示和技巧很有用。不幸的是,我不认为你会发现许多使用F#的优秀教学资源,因为它是一种新语言。不过,您可能想看看那里的计划书。 – 2010-01-27 15:33:35
我正在考虑的计划书:http://mitpress.mit.edu/SICP/和http://www.htdp.org/2003-09-26/Book/ - 我建议这些不是因为我认为Scheme是一种完美的教学语言(尽管有些人会这样认为),但是因为这些知名的书籍可以在线免费获得。 – 2010-01-27 15:36:11
感谢您的指导。我正在研究它。 – mehmetselim 2010-01-27 15:50:48