閉じる

C#の主なデータ型と変数の使い方(int,string,bool)基礎入門

C#でプログラミングを始める第一歩は、値を入れて使い回すための変数と、その値の種類を表すデータ型を理解することです。

本記事ではint、double、string、boolの4種類に絞り、宣言から代入、計算や比較の基本までを丁寧に説明します。

実行結果も併記しますので、手を動かしながら読み進めてください。

C#の変数の基本と宣言方法(初心者向け)

変数とは(値を入れる箱)

プログラム中で繰り返し使う値を保存しておくために、変数という名前付きの場所を用意します。

イメージとしては値を入れる箱で、箱のラベルが変数名、入る物の種類が型です。

C#ではintdoubleなどの型を必ず付けて宣言します。

C#
// 変数の基本イメージを確認するサンプル
using System;

class Program
{
    static void Main()
    {
        int apples = 3;            // 整数の箱に3を入れる
        double price = 120.5;      // 小数の箱に120.5を入れる
        string message = "Hello";  // 文字列の箱に"Hello"を入れる
        bool isFresh = true;       // 真偽値の箱にtrueを入れる

        Console.WriteLine("apples = " + apples);
        Console.WriteLine("price = " + price);
        Console.WriteLine("message = " + message);
        Console.WriteLine("isFresh = " + isFresh);
    }
}
実行結果
apples = 3
price = 120.5
message = Hello
isFresh = True

型を付けた宣言と代入の書き方

宣言は型名 変数名;の形で書きます。

宣言した後、=を使って値を代入します。

代入は左が入れ物、右が値という関係を覚えると理解しやすくなります。

C#
using System;

class Program
{
    static void Main()
    {
        int count;      // 宣言のみ
        count = 10;     // 後から代入

        string name;    // 宣言のみ
        name = "Taro";  // 後から代入

        Console.WriteLine("count = " + count);
        Console.WriteLine("name = " + name);
    }
}
実行結果
count = 10
name = Taro

初期化の基本(宣言と同時に代入)

宣言と代入を同時に行うことを初期化と呼びます。

コードが簡潔になり、未代入のまま使ってしまうミスも防げます。

C#
using System;

class Program
{
    static void Main()
    {
        int age = 20;              // 宣言と同時に初期化
        double height = 170.2;     // 宣言と同時に初期化
        string city = "Tokyo";     // 宣言と同時に初期化
        bool isMember = false;     // 宣言と同時に初期化

        Console.WriteLine(age + ", " + height + ", " + city + ", " + isMember);
    }
}
実行結果
20, 170.2, Tokyo, False

識別子の付け方(英数字とアンダースコア)

変数名は英字で始め、英数字とアンダースコアを使うのが基本です。

大文字小文字は区別されます。

慣例として、ローカル変数はcamelCase(先頭小文字)で意味のある名前を付けます。

C#
using System;

class Program
{
    static void Main()
    {
        int itemCount = 5;      // OK: 意味が伝わるcamelCase
        int _cacheSize = 256;   // OK: 先頭アンダースコアも有効
        int total2 = 2;         // OK: 数字を含められる
        // int 2nd = 2;         // NG: 数字で開始は不可
        // int class = 1;       // NG: 予約語は使えない

        Console.WriteLine(itemCount + _cacheSize + total2);
    }
}
実行結果
263

予約語や空白、ハイフンは使えません

また、日本語名も技術的には可能ですが、本記事では混乱を避けるため英数字を推奨します。

int型(整数)の使い方

宣言と初期化の例

intは小数点を含まない整数を扱います。

個数や回数など、数えられる値に適します。

C#
using System;

class Program
{
    static void Main()
    {
        int a = 12;
        int b = -3;
        int zero = 0;

        Console.WriteLine("a = " + a + ", b = " + b + ", zero = " + zero);
    }
}
実行結果
a = 12, b = -3, zero = 0

基本演算(+, -, *, /, %)

四則演算と余りの計算ができます。

C#
using System;

class Program
{
    static void Main()
    {
        int x = 15;
        int y = 4;

        int add = x + y;      // 加算
        int sub = x - y;      // 減算
        int mul = x * y;      // 乗算
        int div = x / y;      // 整数同士の割り算
        int mod = x % y;      // 余り

        Console.WriteLine("add=" + add);
        Console.WriteLine("sub=" + sub);
        Console.WriteLine("mul=" + mul);
        Console.WriteLine("div=" + div);
        Console.WriteLine("mod=" + mod);
    }
}
実行結果
add=19
sub=11
mul=60
div=3
mod=3

整数同士の割り算に注意

int同士で割ると小数点以下は切り捨てになります。

必要に応じてdoubleに変換しましょう。

C#
using System;

class Program
{
    static void Main()
    {
        int a = 7;
        int b = 2;

        int intDiv = a / b;                   // 3 となる
        double realDiv1 = a / (double)b;      // 3.5 にするため片方をdoubleへ
        double realDiv2 = (double)a / b;      // 同上

        Console.WriteLine("intDiv = " + intDiv);
        Console.WriteLine("realDiv1 = " + realDiv1);
        Console.WriteLine("realDiv2 = " + realDiv2);
    }
}
実行結果
intDiv = 3
realDiv1 = 3.5
realDiv2 = 3.5

意図せず整数割り算になるのは初学者のつまずきポイントです

片方をdoubleにするか、後述のdouble演算に任せましょう。

double型(小数)の使い方

宣言と初期化の例

doubleは小数を含む実数を扱います。

平均値や測定値など連続量に向いています。

C#
using System;

class Program
{
    static void Main()
    {
        double pi = 3.14159;
        double rate = -0.05;
        double whole = 2.0;   // 小数点付きにするとdoubleの計算がしやすい

        Console.WriteLine("pi = " + pi + ", rate = " + rate + ", whole = " + whole);
    }
}
実行結果
pi = 3.14159, rate = -0.05, whole = 2

小数計算の注意(丸め誤差)

doubleは2進数で小数を表現するため、きれいに表せない値があり丸め誤差が出ます

例えば0.1や0.2は二進数で有限桁になりません。

C#
using System;

class Program
{
    static void Main()
    {
        double x = 0.1;
        double y = 0.2;
        double sum = x + y;

        Console.WriteLine("x + y = " + sum);
        Console.WriteLine("x + y == 0.3 ? " + (sum == 0.3));
    }
}
実行結果
x + y = 0.30000000000000004
x + y == 0.3 ? False

金額など正確な小数が必須の場面は別の型を使います

本記事では扱いませんが、用途に応じた型選びが重要です。

整数(int)との計算

intとdoubleを一緒に計算すると、結果はdoubleになります

整数割り算を避けたい時にも有効です。

C#
using System;

class Program
{
    static void Main()
    {
        int a = 5;
        int b = 2;

        int intDiv = a / b;           // 2
        double mixed1 = a / 2.0;      // 2.5 片方がdouble
        double mixed2 = (double)a / b;// 2.5 明示的キャスト

        Console.WriteLine("intDiv = " + intDiv);
        Console.WriteLine("mixed1 = " + mixed1);
        Console.WriteLine("mixed2 = " + mixed2);
    }
}
実行結果
intDiv = 2
mixed1 = 2.5
mixed2 = 2.5

string型とbool型の使い方

stringの宣言と文字列リテラル(“…”)

stringは文字の並びを扱います。

ダブルクォーテーションで囲んだ文字列リテラルを代入します。

C#
using System;

class Program
{
    static void Main()
    {
        string hello = "Hello, C#";       // 文字列リテラル
        string name = "Taro";
        string message = hello + " / Name: " + name; // + で連結

        Console.WriteLine(message);
    }
}
実行結果
Hello, C# / Name: Taro

よくあるポイント

ダブルクォーテーション自体を文字列に含めたい場合は、"とエスケープします。

改行は\nです。

C#
using System;

class Program
{
    static void Main()
    {
        string quoted = "He said \"Hi\".";
        string multi = "Line1\nLine2";
        Console.WriteLine(quoted);
        Console.WriteLine(multi);
    }
}
実行結果
He said "Hi".
Line1
Line2

文字数を調べる(Length)

string.Lengthで文字数を取得できます。

入力の検証などで役立ちます。

C#
using System;

class Program
{
    static void Main()
    {
        string s = "coffee";
        Console.WriteLine("s = " + s);
        Console.WriteLine("Length = " + s.Length);
    }
}
実行結果
s = coffee
Length = 6

boolの宣言(true/false)

booltruefalseの2値を表します。

条件分岐の基礎です。

C#
using System;

class Program
{
    static void Main()
    {
        bool isAdult = true;
        bool isMember = false;

        Console.WriteLine("isAdult = " + isAdult);
        Console.WriteLine("isMember = " + isMember);
    }
}
実行結果
isAdult = True
isMember = False

比較の結果はbool(== や > など)

比較演算の結果はboolになります

数値同士や文字列の比較で頻繁に使います。

C#
using System;

class Program
{
    static void Main()
    {
        int a = 10;
        int b = 7;

        bool eq = (a == b);   // 等しいか
        bool ne = (a != b);   // 等しくないか
        bool gt = (a > b);    // より大きいか
        bool le = (a <= b);   // 以下か

        Console.WriteLine("a == b : " + eq);
        Console.WriteLine("a != b : " + ne);
        Console.WriteLine("a > b  : " + gt);
        Console.WriteLine("a <= b : " + le);
    }
}
実行結果
a == b : False
a != b : True
a > b  : True
a <= b : False

= は代入、== は比較です。

混同すると意図しない結果になります。

if文などの条件式で==の代わりに=を誤って使うと、比較ではなく値の代入が行われてしまいます。

その結果、条件が常に真と評価されて意図しない処理が実行されたり、型の不一致でコンパイルエラーが発生したりします。

この間違いは発見しづらいバグの原因となるため、特に注意が必要です。

stringの等価比較

string==で内容比較が可能です。

大文字小文字を区別します。

C#
using System;

class Program
{
    static void Main()
    {
        string s1 = "Apple";
        string s2 = "apple";
        Console.WriteLine("s1 == s2 : " + (s1 == s2)); // 大文字小文字が違うためfalse
    }
}
実行結果
s1 == s2 : False

まとめ

本記事では、int、double、string、boolの4つの基本型について、宣言、代入、初期化、演算や比較の基礎を一通り確認しました。

特に整数割り算の切り捨てdoubleの丸め誤差は最初に押さえておきたい注意点です。

変数名は意味が伝わる英数字とアンダースコアで付け、型に合った値を扱うことを意識すると、エラーが減り読みやすいコードになります。

次はここで学んだ基礎を使い、条件分岐や繰り返しに進むと理解が一段と深まります。

この記事を書いた人
エーテリア編集部
エーテリア編集部

C#の入門記事を中心に、開発環境の準備からオブジェクト指向の基本まで、順を追って解説しています。ゲーム開発や業務アプリを目指す人にも役立ちます。

クラウドSSLサイトシールは安心の証です。

URLをコピーしました!