repeat & break – flow control “REPEAT” & “BREAK”
使用例1: repeat{rcmd;if(expression){break}}
概要1: expressionが満たされていない限りrcmdが繰り返し実行される。
(備考:expressionが満たされていても、rcmdが一度は必ず実行される)
使用例2: repeat{if{expression){break}; rcmd2}
概要2: expressionが満たされていない限りrcmdが繰り返し実行される。
(備考:expressionが満たされていている場合、rcmdが一度も実行されない)
関連: for, while,
# usage #
repeat {
rcmd
if (expression) {break}
}
# and/or
repeat {
if (expression) {break}
rcmd
}
##### ----- examples ----- #####
# 1から5までカウントし、表示する #
> counter=0
> repeat {
+ counter=counter+1
+ print(counter)
+ if (counter==5) {break}
+ }
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
# printYesNoが真の場合、1から3までカウントし、終わりに"done"と表示する#
# printYesNoが真の場合の例。3までカウントすることが終了条件 #
> printYesNo=T;counter=0
> repeat{
+ counter=counter+1
+ print(counter)
+ if (counter==3){
+ print("Done")
+ break
+ }
+ if (printYesNo==F){break}
+ }
[1] 1
[1] 2
[1] 3
[1] "Done"
# printYesNoが偽も場合の例。終了条件をみたしているが実行している #
> printYesNo=F;counter=0
> repeat{
+ counter=counter+1
+ print(counter)
+ if (counter==3){
+ print("Done")
+ break
+ }
+ if (printYesNo==F){break}
+ }
[1] 1
# printYesNoが偽も場合の例。終了条件の位置を変更すると実行されない #
> printYesNo=F;counter=0
> repeat{
+ if (printYesNo==F){break}
+ counter=counter+1
+ print(counter)
+ if (counter==3){
+ print("Done")
+ break
+ }
+ }
##### ----- end examples ----- #####