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?

PL/I 初心者②

Posted at

条件分岐

条件分岐(IF文)

基本
 IF 条件 THEN 文;

書き方

age = 20;

IF age >= 18 THEN
    PUT SKIP LIST('成人です');

※ageが18歳以上なら、「成人です」と出力。

ELSEを含む

IF 条件 THEN 文1;
ELSE 文2;

書き方

IF age >= 18 THEN
    PUT SKIP LIST('成人です');
ELSE
    PUT SKIP LIST('未成年です');

※ageが18歳以上なら「成人です」と出力。それ以外は「未成年です」と出力

複数の処理をまとめて書きたいとき(DO〜END)

IF 条件 THEN DO;
    文1;
    文2;
END;

書き方

IF age >= 18 THEN DO;
    PUT SKIP LIST('成人');
    PUT SKIP LIST('お酒OK');
END;
ELSE DO;
    PUT SKIP LIST('未成年');
    PUT SKIP LIST('飲酒NG');
END;

※ageが18以上の時「成人」「お酒OK」を出力。それ以外は「未成年」「飲酒NG」を出力。

組み合わせ

IF age >= 18 THEN
    IF age < 65 THEN
        PUT SKIP LIST('現役世代');
    ELSE
        PUT SKIP LIST('高齢者');
ELSE
    PUT SKIP LIST('未成年');

ageが18以上で、65より小さいとき「現役世代」と出力。それ以外は「高齢者」と出力
ageが18以上でない時は「未成年」と出力

繰り返し文(DO文)

回数指定の繰り返し文

DO i = 初期値 TO 終了値 BY 増分;
    繰り返したい処理;
END;

例文

DECLARE i FIXED;

DO i = 1 TO 5;
    PUT SKIP LIST('i =', i);
END;

iに1〜5までを順番に出力する。

BY句 指定された数を引く処理

DO i = 10 TO 0 BY -2;
    PUT SKIP LIST('カウントダウン:', i);
END;

10から-2ずつ0になるまで繰り返して、出力する。

条件による繰り返し

DO WHILE (条件式);
    処理;
END;

例文

DECLARE x FIXED;
x = 1;

DO WHILE (x <= 3);
    PUT SKIP LIST('x =', x);
    x = x + 1;
END;

「x <= 3」でxが3以上になったら下の繰り返し処理が終了。
1,2,3と出力されるが、4は条件を超えてしまっているので3で終了。

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?