見出し画像

基礎言語★条件分岐したいよぉ

CPUに判断させて、実行させるプログラムを変える基本。
だいたいどの言語でも、CPUに正誤(True/False)を判断させて、正ならthenを、誤ならelse(無ければ次の命令へ)を実行する動作をします。

というのも、CPUには判断を行う機能が基本的に備わっていて、たとえば引き算の結果でゼロフラグやキャリーフラグが変化して、そのフラグにより処理を飛ばす仕組みを持っているので、このカタチはほとんど変えようがないのでしょうね。
(文章修正2021/01/11)

BASIC

IF X>0 THEN
    PRINT "正"   '変数Xの内容が0より大きければ実行する
ELSE IF X<0 THEN
    PRINT "負"   '上記でなく、変数xの内容が0より小さければ実行する
ELSE
    PRINT "ゼロ" '上記に当てはまらなければ実行する
ENDIF

'上記の書き方は「構造化IF」と言います。
'ちなみに1行でも書けます。多分、こちらが元祖です(大昔はELSEは無かったかも)
IF X>0 THEN PRINT "正" ELSE IF X<0 PRINT "負" ELSE PRINT "ゼロ"

ExcelVBA

If x>0 Then
    MsgBox "正"
ElseIf x<0 Then  '「ElseIf」スペースがいらない
    MsgBox "負"
Else
    MsgBox "ゼロ"
End If           'こちらは「End If」スペースがいる

C言語

void main(){
    int x= 1;
    if(x>0){
        puts("正");
    }else if(x<0){    //「else if」スペースが必要なので注意したい
        puts("負");
    }else{
        puts("ゼロ");
    }
}

//ちなみに条件分岐後に実行する関数が1つだけなら、中カッコは省略可能です
if(x==0)
    puts("ゼロ");

Perl

if($x>0){
    print("正");
}elsif($x<0){    #Perlでは、「elsif」というのが特徴的
    print("負");
}else{
    print("ゼロ");
}

Java

class If{
    public static void main(String args[]){
        int x= 1;
        //書き方はC言語と同じ
		if(x>0){
		    System.out.println("正");
		}else if(x<0){
		    System.out.println("負");
		}else{
		    System.out.println("ゼロ");
		}
    }
}

//ちなみに条件分岐後に実行する関数が1つだけなら、中カッコは省略可能です
if(x==0)
    System.out.println(x);

Python

if x>0:
    print("正")
elif x<0:        #Pythonは「elif」になる
    print("負")
else:
    print("ゼロ")

「else if」を短縮するのは、面倒臭くしてくれてありがとうといつも思う…。
いや、よく使うので短縮したくなる気持ちも分かりますが、ね。

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