2

コード片あり

 A = "am"
    F = "fm"
    def fmam(n)
        return if n == 0
        loopy(n - 1)
        case true
        when n % 15 == 0
            puts B + L
        when n % 5 == 0
            puts L
        when n % 3 == 0
            puts B
        else
            puts n
        end
    end
    fmam(20)

このコードでは、このコードは何をしcase true ますか?

4

3 に答える 3

3

tutorialspoint:- 言う

case expression
[when expression [, expression ...] [then]
   code ]...
[else
   code ]
end

演算子使用時のbyexpression指定とby指定を比較し、一致した句のコードを実行します。case===when

以下を見てください:

A = "am"
F = "fm"
L = "dd"
B = 'aa'
def fmam(n)
    return if n == 0

    case true
    when n % 15 == 0
        puts B + L
    when n % 5 == 0 # this evaluates to true first, which then matched with true value mentioned in the case statement.
        puts L
    when n % 3 == 0
        puts B
    else
        puts n
    end
end
fmam(20) #=> dd

次のコードを見てください。

A = "am"
F = "fm"
L = "dd"
B = 'aa'
def fmam(n)
    return if n == 0

    case false
    when n % 25 == 0 # this evaluates to false first, which then matched with false value mentioned in the case statement.
        puts B + L
    when n % 5 == 0
        puts L
    when n % 3 == 0
        puts B
    else
        puts n
    end
end
fmam(30) #=> aadd
于 2013-04-15T20:17:13.177 に答える
0

caseステートメントを次のようにリファクタリングできます

msg = case 0
when n % 15
  B + L
when n % 5
  L
when n % 3
  B
else
  n
end
puts msg
于 2013-04-15T21:31:53.287 に答える