見出し画像

継続,脱出,停止,解除 _ 条件の概念が違って面白いという話

プログラミングにおける条件

一般的に条件って言葉を使ってますが、意図的に接頭辞をつける場合がありますよね。継続条件とか脱出条件とか
今回はそういう○○条件という話です。分野が違うと条件に対する意識も違うんだなあと感じた部分です。

ループ処理に対しての条件

言語によってループ処理の記述方法は異なるとは思いますが、
一般的にfor系やwhile系があると思います。
ループ処理にはそのループ処理を継続する処理を書く必要があります。
(意図的な無限ループとかにしない限り)
継続条件と一般的に呼ばれるものです。

//C言語
while(継続条件){
    //処理のあれこれ
}

他には脱出条件を記述することもありますよね。
(特に無限ループのときは)

//C言語

while(継続条件){
    //処理のあれこれ
    if( 脱出条件 ){
        break;
    }
}

法律における条件

法律における条件で私が民法を勉強して習ったのが
停止条件と解除条件でした。
初めて聞いた瞬間はガチでイメージもわかず意味不明状態でした。

停止条件

ははーん?なんかよくわからんが停止するための条件だな?と思ったのですが違いました。

引用すると
>停止条件付法律行為は、停止条件が成就した時からその効力を生ずる。

法律的な意味合いはいろんな論点があって面白いのですが、それは横に置いて
これをプログラムで解釈すると普段我々が記述している条件式そのものです。

//C言語(停止条件と記載してるが条件式そのもの)
if( 停止条件 ){
    法律行為の効力発生();
}

以前にお話した効力要件はこの位置に入ります。(常に入るとは限らない)

//C言語
if( 停止条件 ){
    if( 効力要件 ){
        法律行為の効力発生();
    }
}

これプログラム上じゃ区別つかないな(笑)
でも勉強する限りこの位置なんですよね。もっとうまく説明できるようになったらまた別記事にします。

解除条件

これがなかなかネックな条件です。プログラム上で記述すると
時と場合によりけりだからです。
まず定義を確認しましょう。
さきほどの条文サイトから引用すると
>解除条件付法律行為は、解除条件が成就した時からその効力を失う。

乱暴に言うと一番近い概念はループ処理における脱出条件です。
(でもプログラミングの文脈上ただの条件式だって解除条件になりえます。)

//C言語
while( 継続条件 ){
    //ある法律行為の効力が発生している

    //法律行為の効力を失う条件(解除条件と記載してるが、脱出条件そのもの)
    if( 解除条件 ){
        break;
    }   
}

最後に

いざ説明となるとなかなか大変な部分だなと思いました。
まさかそんな部分に特別な条件名つけるんだな!っていう面白さが先にありました。

これからもコツコツ記事にしていこうと思います。
よろしくお願いいたします。

この記事が気に入ったらサポートをしてみませんか?