演習 - リテラル値を出力する
この演習では、他の種類のデータを含むメッセージを出力し、C# においてデータ型が非常に重要である理由を学習します。
リテラル値とは何ですか?
リテラル値とは、決して変わることのない定数値です。 前に、リテラル文字列を出力コンソールに表示しました。 つまり、文字どおり、H
、e
、l
、l
、o
などの英数字から成る文字列を出力コンソールに表示したいと考えていました。
計算用ではなく表示用の英数字の単語、語句、またはデータがある場合は常に文字列データ型が使用されます。 他に、どのようなリテラル データを出力できるでしょうか?
演習 - さまざまなリテラル データ型を出力する
C# には、多くのデータ型があります。 しかし、5、6 種類のデータ型でほとんどのシナリオに対処できるので、作業を開始する際はそれらについて知っていれば十分です。 データ型のリテラル インスタンスを出力に表示してみましょう。
Note
コード ウィンドウで作業を開始すると、特定の構文がキーワード、演算子、データ型などを示すさまざまな色で色付けされているのがわかります。 色に注目して見ましょう。 これは、文字の入力時に構文エラーを見つけるのに役立つほか、コードをより効果的に理解するのにも役立ちます。
文字リテラルを使用する
単一の英数字のみが画面に出力されるようにしたい場合は、1 つの英数字を単一引用符で囲むと、char リテラルを作成できます。 用語 char
は、character を略したものです。 C# では、このデータ型は正式には "char" という名前ですが、"character" と呼ばれることがよくあります。
コード エディターで次のコード行を追加します。
Console.WriteLine('b');
入力したコードを確認してください。
文字
b
が単一引用符'b'
で囲まれている点に注目してください。 単一引用符により、文字リテラルが作成されます。 二重引用符を使用すると、string
データ型が作成されることを思い出してください。緑色の [実行] ボタンを押してコードを実行してください。 出力ウィンドウに次の結果が表示されます。
b
次のコードを入力する場合:
Console.WriteLine('Hello World!');
次のようなエラーが表示されます。
(1,19): error CS1012: Too many characters in character literal
Hello World!
を囲む単一引用符に注目してください。 単一引用符を使用する場合、C# コンパイラでは 1 文字が想定されます。 ただし、この場合、文字リテラル構文が使用されましたが、代わりに 12 文字が指定されました。
string
データ型と同様に、(計算用ではなく) 表示用の単一の英数字がある場合は常に char
を使用してください。
整数リテラルを使用する
出力コンソールに、数値の整数 (小数部を含まない) 値を表示したい場合は、int リテラルを使用できます。 用語 int
は、integer を省略したものです。数学の学習で見覚えがあるのではないでしょうか。 C# では、このデータ型は正式には "int" という名前ですが、"integer" と呼ばれることがよくあります。 int
リテラルには、string
や char
などの追加の演算子は必要ありません。
コード エディターで次のコード行を追加します。
Console.WriteLine(123);
緑色の [実行] ボタンを押してコードを実行してください。 出力コンソールに次の結果が表示されるはずです。
123
浮動小数点リテラルを使用する
浮動小数点数は、10 進数 (3.14159 など) を含む数値です。 C# では、10 進数を表す 3 つのデータ型 (float
、double
、decimal
) がサポートされています。 各型は、さまざまな有効桁数をサポートします。
Float Type Precision
----------------------------
float ~6-9 digits
double ~15-17 digits
decimal 28-29 digits
ここでの有効桁数とは、正確な小数点以下の桁数を反映したものです。
コード エディターで次のコード行を追加します。
Console.WriteLine(0.25F);
float
リテラルを作成するには、数値の後に文字F
を追加してください。 このコンテキストでは、F
は "リテラル サフィックス" と呼ばれます。 このリテラル サフィックスによって、float
型の値を使用することがコンパイラに指示されます。float
の場合のリテラル サフィックスとして、小文字のf
または大文字のF
のいずれかを使用できます。緑色の [実行] ボタンを押してコードを実行してください。 出力コンソールに次の結果が表示されるはずです。
0.25
float
データ型が最も正確はでないので、予期しない計算エラーを回避するために、固定小数部の値にこのデータ型を使用することをお勧めします。コード エディターで次のコード行を追加します。
Console.WriteLine(2.625);
double
リテラルを作成するには、10 進数を入力してください。 リテラル サフィックスなしで 10 進数を入力すると、コンパイラの既定値はdouble
リテラルになります。緑色の [実行] ボタンを押してコードを実行してください。 出力ウィンドウに次の結果が表示されます。
2.625
コード エディターで次のコード行を追加します。
Console.WriteLine(12.39816m);
decimal リテラルを作成するには、数値の後に文字
m
を追加します。 このコンテキストでは、m
は "リテラル サフィックス" と呼ばれます。 このリテラル サフィックスによって、decimal
型の値を使用することがコンパイラに指示されます。decimal
の場合のリテラル サフィックスとして、小文字のm
または大文字のM
のいずれかを使用できます。緑色の [実行] ボタンを押してコードを実行してください。 出力コンソールに次の結果が表示されるはずです。
12.39816
Boolean リテラルを使用する
true
または false
のいずれかを表す値を出力したい場合は、bool リテラルを使用できます。
bool
という用語は Boolean の短縮形です。 C# では、これらは正式には "bool" と呼ばれますが、開発者は "Boolean" という用語をよく使用します。
コード エディターで次のコード行を追加します。
Console.WriteLine(true); Console.WriteLine(false);
緑色の [実行] ボタンを押してコードを実行してください。 出力コンソールに次の結果が表示されるはずです。
True False
bool
リテラルは、真と偽の状態の概念を表します。 アプリケーションに決定ロジックを追加し始めると、bool
値を多用することになります。 式を評価して、式が true と false のどちらであるかを確認してください。
データ型を重要視する理由
データ型は、C# において中心的な役割を果たします。 実際、JavaScript などの他の言語と比較して、データ型に重点を置くことが C# の重要な特徴の 1 つです。 C# の設計者は、データ型を適用することにより、開発者がよくあるソフトウェアのバグを回避することができると信じました。 C# の詳細を学習すれば、この概念が見えてきます。
データ型によって機能が定義される
先ほど、string
と char
は、"計算ではなく表示" に使用されると説明しました。 数値に対して数学的演算を実行する必要がある場合は、int
または decimal
を使用する必要があります。 表示またはテキスト操作に使用されるデータがある場合は、string
または char
データ型を使用する必要があります。
電話番号や郵便番号などのデータをユーザーから収集する必要があるとします。 住んでいる国/地域によって異なりますが、そのデータは数字で構成されている可能性があります。 ただし、電話番号や郵便番号に対して計算を実行することはほとんどないため、それらのデータを使用するときは string
データ型を使用することをお勧めします。
bool
についても同じことが言えます。 アプリケーションで単語 "true"
と単語 "false"
を使用する必要がある場合は、string
を使用します。 ただし、評価の実行時に true
または false
の概念を使用する必要がある場合は、bool
を使用します。
これらの値は、string リテラルの表現と何ら変わりないように見える場合があることを知っておくことが重要です。 つまり、次のステートメントを同じであると考えてしまう場合があるということです。
Console.WriteLine("123");
Console.WriteLine(123);
Console.WriteLine("true");
Console.WriteLine(true);
ただし、似ているように見えるのは、表示されている出力のみです。 事実、基になる int
または bool
で実行できることは、見た目は同じでも string
の場合とは異なります。
まとめ
主なポイントとして、データ型は数多くありますが、ここでは次に示すほんの一部に焦点を当てます。
string
は、計算用ではなく表示用の単語、語句、または英数字データの場合char
単一の英数字の場合int
整数の場合decimal
小数部分を持つ数値の場合bool
true
/false
値の場合