Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

Traverse ループの終了

ここでは、ループの終了方法について学習します。ここで再度、変数 substr には空文字以外の部分文字列が設定されているとします。ここで、(if left(ln ,len(sub)) <> substr then exit do) は、“ln の開始が substr と一致しない場合、ループを終了する” ことを意味します。また、ln = "" がある名前の最後に Traverse() が到達する場合も処理します。つまり、ln が空文字列の場合は lnMid() が空文字列で、substr は空文字列でないため、ループが終了します。以下にいくつか例を挙げます。


println "first test: "
substr = "J" : ln = "Jones"
if left(ln, len(substr)) <> substr then println "No Match"
println "second test: "
substr = "J" : ln = "Swoboda"
if left(ln, len(substr)) <> substr then println "No Match"
println "third test: "
substr = "J" : ln = ""
if left(ln, len(substr)) <> substr then println "No Match"

substr = "J"
ln = traverse( ^PersonI("Name", substr), -1)
do
    ln = traverse( ^PersonI("Name", ln) )
    if left(ln, len(substr)) <> substr then exit do
    println ln
loop

コード例は、BAStraverse.BASloopend サブルーチンにあります。ターミナルを使用して、substr を渡すコードを実行します。


SAMPLES>do loopend^BAStraverse("J")
SAMPLES>do loopend^BAStraverse("Jones")

FeedbackOpens in a new tab