D言語入門記事 ~比較演算とプログラムの制御文(1)~

アバター
tk-xleader
記事: 158
登録日時: 14年前
連絡を取る:

D言語入門記事 ~比較演算とプログラムの制御文(1)~

投稿記事 by tk-xleader » 13年前

今回は、プログラムの制御文について説明しようと思います。その前に、比較の為の演算子を解説しなきゃ。

[1] 2つの数値を比較する演算子

 2つの数値を比較する演算は頻繁に出てきます。これらの結果はbool型になります。

1.等しいか等しくないかを調べる

 これは、==演算子と !=演算子を用います。前者は2つの数値が等しいときに真を、後者は2つの数値が等しくないときに真を返します。これらは、C言語と全く同じ演算子です。

CODE:

import std.stdio;

void main(){
	int value = 100;
	writefln("%s,%s",value == 100,value == 10);
	writefln("%s,%s",value != 100,value != 10);
}
► スポイラーを表示
2.大小比較の為の演算子

 まず、すべての数値型に対して、>,>=, value2 → value1がvalue2よりも大きいとき
value1 >= value2 → value1がvalue2よりも大きいか、もしくは等しいとき
value1 < value2 → value1がvalue2よりも小さいとき
value1 <= value2 → value1がvalue2よりも小さい、もしくは等しいとき
[/code]
► スポイラーを表示
[2] 条件分岐 ~if文とelse文

これは、条件によってプログラムの流れを分岐する為の制御文です。C言語と全く同じです。条件式は、bool型以外の場合は、bool型に暗黙変換されます。

CODE:

import std.stdio;

void main(){
	int input;
	write("Input Number:");
	readf("%d",&input);
	if(input < 100){
		writefln("Input data is smaller than 100.");
	}else if(input == 100){
		writefln("Input data is just 100!!");
	}else{
		writefln("Input data is greater than 100.");
	}
}
► スポイラーを表示
[3] 選択文 ~switch-case-default文

 基本はC言語と同じなのですが、C言語よりも高機能になっています。例を見ながら解説します。

CODE:

import std.stdio;

void main(){
	int input;
	write("Input Number 1 to 10:");
	readf("%d",&input);
	switch(input){
		/*(1)*/
	case 1:
		writeln("Input data is 1");
		break;

		/*(2)*/
	case 2:
		writeln("Input data is 2");
	case 3:
	case 9:
		writeln("Input data is 2, 3 or 9");
		break;

		/*(3)*/
	case 4:..case 7:
		writeln("Input data is 4, 5, 6 or 7");
		break;

		/*(4)*/
	case 8,10:
		writeln("Input data is 8 or 10");
		break;

		/*(5)*/
	default:
		writeln("Obey my order!!!");
		break;
	}
}
 (1) ここは普通にC言語と全く変わりありません。普通のcase文ですね。
 (2) ここもC言語と同様で、case文の最後にbreak文をつけないと、次の文も実行されます。
 (3) これは、4~7の数値に対応するcase文をまとめるときの簡略記法です。..でcaseをつなぎます。
 (4) 一つのcase文にコンマで並べた複数の数値を対応付けることが出来ます。
 (5) 対応する数値が無いときは、C言語と同様にdefaultラベルにジャンプします。default文が複数ある場合はコンパイルエラー。

[4] 繰り返し文 ~for文、while文そしてdo-while文

 これもC言語と全く同じです。do-while文は、最初の一回は必ず実行される繰り返し文ですね。
 ただし、for文では、初期化式で変数の宣言を行うことが出来ます。次の二つのコードは全く同じ意味を持ちます。

CODE:

for(int i = 0; i < 100; i++){
	writeln("repeat!!");
}

CODE:

{
	int i = 0;
	for(; i < 100; i++){
		writeln("repeat!!");
	}
}
 もちろん、break文やcontinue文も使うことが出来ます。
► スポイラーを表示
► スポイラーを表示
前の記事「定数の表現(2)と変数」 ←→ 次の記事「関数(1)
最後に編集したユーザー tk-xleader on 2012年3月22日(木) 23:37 [ 編集 2 回目 ]

コメントはまだありません。