最近在学 Powershell, 发现语法和PHP很像, 但又有一些不太一样, 先放上递归的实现:
// helloacm.com function Fib($n) { switch ($n) { 0 { 1; break } 1 { 1; break } default { # 必须用 () 括号, 类似 js 里的 eval (Fib($n - 1)) + (Fib($n - 2)) } } }
更为简短的:
// helloacm.com function Fib($n) { if ($n -eq 1 -or $n -eq 0) { return 1 } (Fib($n - 1)) + (Fib($n - 2)) # 必须用 () 括号, 类似 js 里的 eval }
非递归的:
// helloacm.com function Fib() { param ($n) $a = 0 $b = 1 for ($i = 1; $i -le $n; $i ++) { $c = $a + $b $a = $b $b = $c } $c }
其中 也可以用 foreach 来实现 loop
foreach ($i in 1.$n) { }
几点学习体会:
1. 参数可以在函数里写, 这个在C语言里是一样的.
2. 变量是可以用类型的, 比如你可以用 param([int]$n) 来声明 $n 是整形 (32 位)
3. 比较大于,小于等于, 都用LINUX下判断的风格, -gt, -lt, -eq, 逻辑 and, or 也是类似: -and, -or
4. for 和 C/C++ 里的一样
5. 变量声明和 PHP 里一样, 而且都必须是于 $ 符号开始.
6. return 和 exit 都是从函数里退出, 但是如果后面已经没有执行语句, 则可以省略.
英文同步: https://helloacm.com/learning-powershell-recursive-fibonacci-computation/
GD Star Rating
loading...
本文一共 189 个汉字, 你数一下对不对.loading...
上一篇: 移民英国后, 父母怎么办?
下一篇: 留园网拒了友情链接的要求
扫描二维码,分享本文到微信朋友圈