0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Rubyのフリップフロップ演算子の使い方

Posted at

Rubyにはちょっと特殊な演算子 ..(範囲演算子)が、条件式の中で フリップフロップ演算子 として動く場合があるらしい。

例:3〜5の範囲だけ「T」を表示する

10.times { |d| print d == 3..d == 5 ? "T" : "F" }

結果

FFFTTTFFFF

コードの解説

  1. 10.times { |d| ... }
    0から9までの整数 d に対してブロックを10回実行します。

  2. d == 3..d == 5
    • 普通の範囲演算子のように見えますが、条件式の中で使うと フリップフロップ演算子 として働きます。
    • フリップフロップのルール

    1. 左側の条件(ここでは d == 3)が true になるまで false を返す
    2. 左側が true になったら true を返し続ける
    3. 右側の条件(ここでは d == 5)が true になったら false に戻る

動作のイメージ

d d == 3..d == 5 出力
0 false F
1 false F
2 false F
3 true T
4 true T
5 true T
6 false F
7 false F
8 false F
9 false F

まとめ

• .. が条件式の中にあると フリップフロップ演算子 として動く
• 「左条件が true になるまで OFF → 左条件が true になったら ON → 右条件で OFF」に戻る
• テキスト処理やループで 特定の範囲だけ処理したいとき に便利

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?