boolean初期値について

解決


DELLさん  2012-03-09 14:41:27  No: 41767  IP: 192.*.*.*

Delphiでflg:booleanを設定した際に、初期値は基本的にfalseからはじまりますが、そういう仕様(多言語も含む)なんでしょうか?

最初からflg:=trueみたいな設定する所とかあるんでしょうか?

編集 削除
KHE00221  2012-03-09 21:07:38  No: 41768  IP: 192.*.*.*

var
  Form3: TForm3;
  A: Boolean = True;

implementation

{$R *.dfm}

procedure TForm3.FormCreate(Sender: TObject);
var
    B: Boolean = True; //ローカル変数は初期化できない
begin

end;

編集 削除
tor  2012-03-09 22:09:35  No: 41769  IP: 192.*.*.*

変数を明示的に初期化しなかった場合の初期値については、Object Pascal言語ガイドの「変数の宣言」の章に書かれています。
> 明示的に初期化されていないグローバル変数はコンパイラによって 0 に初期化されます。

Delphi(Pascal)のBooleanは、言語仕様上は列挙型の一種で、以下のように宣言されているのと等価です。
type Boolean = (False, True);
初期値は順序値が0のものになるので、Falseが初期値ということになります。

> そういう仕様(多言語も含む)なんでしょうか?
ブール代数では真を1、偽を0で表すのが一般的ですし
一番無難な初期値として0を選ぶのもたいていの言語で共通だと思いますよ。

編集 削除
DELLさん  2012-03-12 11:35:09  No: 41770  IP: 192.*.*.*

Object Pascal言語ガイド「変数の宣言」の章を読みます。
解りやすい説明ありがとうございました。

ネットでのQ&Aって便利なので使いこなせるようにしたいです。

編集 削除