![見出し画像](https://assets.st-note.com/production/uploads/images/42324978/rectangle_large_type_2_544a24f7ff74d5c37d5fd9e505f2dfee.jpg?width=1200)
基礎言語★条件分岐したいよぉ
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」を短縮するのは、面倒臭くしてくれてありがとうといつも思う…。
いや、よく使うので短縮したくなる気持ちも分かりますが、ね。