無差別に技術をついばむ鳥

情報処理技術全般を気まぐれにつつくゆるいブログです

Adaをつつく6ーcase文。おばあちゃん複数から厳格に選ぶ。

前回if文をつついたから今回は複数条件分岐をつつくピヨ♪Adaでも複数の条件を判定する文があるピヨッ。Adaの場合はcase文で複数条件分岐を行うピヨォッチ。じゃあ早速、つついてみよう♪


with Ada.Text_Io; use Ada.Text_Io;
with Ada.Integer_Text_IO;

procedure CaseSample is

Num : Integer := 0;
Positive : Integer := 0;

begin
  --値を入力
  Put ("好きな数値を入力してEnterキーを押すピヨ♪:" ); 
  Ada.Integer_Text_IO.Get ( Num,  Positive);
  
  --入力値
  Put ( "入力された数値は" );
  Ada.Integer_Text_IO.Put ( Num, Width => 1 );
  Put ( "ピヨ♪" );
  New_Line;
  
  --case文
  case Num is
    when 0 => Put_Line ( "無我の境地だね♪" ); 
    when 3 | 6 | 9 => Put_Line ( "ピヨォーん" );
    when 10 .. 100 => 
      Put_Line ( "結構ありがちな数値だよね♪" );
      Put_Line ( "そうそう複数行ある場合はこう書くんだよ♪" );
    when others => Put_Line ( "予想外の数値だね♪" );
  end case;
  
end CaseSample;


どう?独特でしょ。=>記号を使う所なんか結構ユニークピヨ♪だけどそれは表面的な事で、Adaは厳格な言語なんだ。それこそが本当の特徴ピヨ♪例えば、othresを指定しないとエラーになるところなんか厳格ピヨッ。VBとかだと全ての条件に当てはまらない場合実行されないだけだけど、Adaだとエラーになるんだ。Adaおばあちゃんは本当に厳格だねぇ。あと、必ず=じゃなくてはならないから・・・

when Num < 0

だとエラーになるピヨォ!エラーメッセージを読むと、どうやらNum < 0の結果とNumの等価性を判定しようとしているらしい。それで、BooleanとIntegerの型が違うからエラーが発生するというわけ。うーん厳しいぃー。そこのところは融通して欲しいけど、そんな厳格さがAdaの売りピヨ。Num < 0の様な事をしたければif文を使おう!
別窓 | Ada | コメント:0 | トラックバック:0 | ∧top | under∨
<<データベースをつつく5−関係モデル以外のモデルについての補足説明 | 無差別に技術をついばむ鳥 | VB.NETをつつく30−部分型1。合体後の属性はどうなる?>>

この記事のコメント

∧top | under∨

コメントの投稿

 

管理者だけに閲覧
 

この記事のトラックバック

∧top | under∨
| 無差別に技術をついばむ鳥 |