16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"文字変数の比較を簡単に"
この発言に対し以下のコメントが寄せられています
#00935 ひの さん RE:文字変数の比較を簡単に
,,
文字変数を比較する場合の、おすすめの方法です。
他の方のサンプルにもけっこう書かれていますが、念のため。
[Q]文字変数 ch が英数字であるかどうかを判断する論理式を作れ。
var
ch: Char; {文字変数の定義}
[A(×)]if文でごく普通に
if (('0' <= ch) and (ch <= '9')) or (('A' <= ch) and (ch <= 'Z'))
or (('a' <= ch) and (ch <= 'z')) then
begin
{正しいときの処理}
end;
[A(△)]case文を使って
case ch of
'0'..'9', 'A'..'Z', 'a'..'z':
begin
{正しいときの処理}
end;
...
end;
[A(○)]集合型定数を使用
if ch in ['0'..'9', 'A'..'Z', 'a'..'z'] then
begin
{正しいときの処理}
end;
3つの答えとも同じ条件判断なのですが、ボリューム(行数)が違いますね。
(△・○の方法だと、最適化が効くという話も聞いたことがある?)
もっと◎な方法があるかも知れません。(見つけた方はコメントでどうぞ)
Original document by 昨日の猿 氏 ID:(FZJ06327)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|