Download
43 lines 943 BTextModified 2022-09-14 raw
12345678910111213141516171819202122232425262728293031323334353637383940414243
// Do/when/if expressions
def main()

    do_values := [:String?]
    when_values := [:String?]
    if_values := [:String?]

    for i in 1..3
        do_values.insert(
            do
                skip if i >= 2
                "one $i"
            else
                stop if i == 3
                "etc $i"
        )

        when_values.insert(
            when i is 1
                "one $i"
            is 2
                "two $i"
            else
                "etc $i"
        )

        if_values.insert(
            if i == 1
                "one $i"
            elseif i == 2
                "two $i"
            else
                "etc $i"
        )

    say "do_values: $do_values"
    fail unless "$do_values" == "[one 1, etc 2, nil]"

    say "when_values: $when_values"
    fail unless "$when_values" == "[one 1, two 2, etc 3]"

    say "if_values: $if_values"
    fail unless "$if_values" == "[one 1, two 2, etc 3]"