C#のbooleanとは?bool型の基本・true/falseの使い方・よくあるエラーを初心者向けに解説

はじめに

C#で条件分岐や判定処理を書くときに必ず登場するのが、bool型です。検索では「csharp boolean」「C# boolean」と調べる人も多いですが、C#では基本的にbooleanではなくboolという型名を使います。

bool型は、値が「正しい」か「正しくない」かを表すためのデータ型です。具体的には、trueまたはfalseのどちらかを扱います。

たとえば、ログインしているかどうか、入力値が正しいかどうか、処理が成功したかどうかなど、プログラムの中で「はい・いいえ」を判断したい場面で使われます。

この記事では、C#のbooleanにあたるbool型について、基本的な書き方、true/falseの使い方、条件分岐、比較演算子、論理演算子、よくあるエラーまで初心者向けにわかりやすく解説します。

1. C#のbooleanとは?bool型の基本を初心者向けに解説

1-1. C#で「boolean」と検索する人が知りたいこと

プログラミングでは、真偽値を扱う型を一般的にboolean型と呼ぶことがあります。JavaScriptやJavaなど、他の言語ではbooleanという型名を使うこともあるため、C#でも「boolean」と検索する人は多いです。

しかし、C#で通常使う型名はbooleanではなくboolです。

たとえば、C#では次のように書きます。

C#
bool isActive = true;

一方で、次のようにbooleanと書くとエラーになります。

C#
boolean isActive = true; // エラー

つまり、C#でbooleanについて知りたい場合は、実際にはbool型を理解することが重要です。

1-2. C#ではbooleanではなくbool型を使う

C#では、真偽値を扱うためにbool型を使います。boolはC#のキーワードであり、trueまたはfalseの値を持つことができます。

C#
bool isLogin = true;
bool hasError = false;

isLoginは「ログインしているか」、hasErrorは「エラーがあるか」を表す変数です。このように、bool型の変数名は状態や判定結果がわかる名前にすると読みやすくなります。

C#ではbooleanという型名をそのまま使うのではなく、boolを使うと覚えておきましょう。

1-3. bool型はtrueまたはfalseを扱うデータ型

bool型が扱える値は、基本的にtruefalseの2つです。

C#
bool isAdult = true;
bool isDeleted = false;

trueは「真」「正しい」「条件を満たしている」という意味で使われます。falseは「偽」「正しくない」「条件を満たしていない」という意味で使われます。

たとえば、年齢が20歳以上かどうかを判定する場合、結果はtrueまたはfalseになります。

C#
int age = 25;
bool isAdult = age >= 20;

Console.WriteLine(isAdult); // True

この例では、age >= 20という条件式の結果がtrueになるため、isAdultにはtrueが代入されます。

1-4. boolとSystem.Booleanの違い

C#のboolは、実際には.NETのSystem.Boolean型の別名です。つまり、次の2つはほぼ同じ意味です。

C#
bool isActive = true;
System.Boolean isEnabled = false;

一般的なC#のコードでは、System.Booleanよりもboolを使うことが多いです。理由は、boolのほうが短く、C#らしい書き方だからです。

通常のプログラミングでは、次のようにboolを使えば問題ありません。

C#
bool result = true;

System.Booleanは、.NETの型として明示したい場合や、リフレクションなど特別な場面で見かけることがあります。初心者のうちは「boolSystem.BooleanのC#での書き方」と理解しておけば十分です。

2. bool型の宣言・代入・初期化の基本

2-1. bool型の変数を宣言する書き方

bool型の変数は、次のように宣言します。

C#
bool 変数名;

たとえば、ユーザーがログインしているかどうかを表す変数を作る場合は、次のように書きます。

C#
bool isLoggedIn;

ただし、ローカル変数は値を代入しないまま使うことはできません。

C#
bool isLoggedIn;
Console.WriteLine(isLoggedIn); // エラー

変数を使う前に、必ずtrueまたはfalseを代入しましょう。

C#
bool isLoggedIn = false;
Console.WriteLine(isLoggedIn);

2-2. trueとfalseを代入する方法

bool型には、trueまたはfalseを代入します。

C#
bool isSuccess = true;
bool hasError = false;

truefalseはC#のキーワードなので、文字列のようにダブルクォーテーションで囲みません。

C#
bool isSuccess = true;   // 正しい
bool isSuccessText = "true"; // エラー

"true"は文字列であり、trueはbool値です。見た目は似ていますが、型が違うため注意が必要です。

2-3. bool型の初期値とデフォルト値

bool型のデフォルト値はfalseです。

たとえば、クラスのフィールドとしてbool型を宣言した場合、明示的に値を代入しなくてもfalseで初期化されます。

C#
class User
{
public bool IsActive;
}

User user = new User();
Console.WriteLine(user.IsActive); // False

また、defaultを使ってboolのデフォルト値を取得することもできます。

C#
bool value = default;
Console.WriteLine(value); // False

ただし、メソッド内で宣言したローカル変数は、自動的に使える状態にはなりません。使用前に値を代入する必要があります。

C#
void Check()
{
bool isValid;
// Console.WriteLine(isValid); // エラー
}

2-4. varでbool型を扱う場合の注意点

C#では、varを使って変数の型をコンパイラに推論させることができます。

C#
var isActive = true;

この場合、isActiveの型はboolになります。

C#
var hasError = false;

varを使っても、型がなくなるわけではありません。右辺の値から型が決まります。truefalseを代入すれば、変数はbool型として扱われます。

ただし、初心者のうちは型が見えにくくなることがあります。学習中は、次のようにboolと明示して書くと理解しやすいです。

C#
bool isActive = true;

3. true/falseの使い方と条件分岐

3-1. if文でbool型を使う基本

bool型は、if文と組み合わせてよく使われます。if文は、条件がtrueの場合に処理を実行します。

C#
bool isLoggedIn = true;

if (isLoggedIn)
{
Console.WriteLine("ログインしています");
}

この例では、isLoggedIntrueなので、if文の中の処理が実行されます。

if文の条件式には、最終的にbool型になる式を書く必要があります。

C#
int age = 20;

if (age >= 18)
{
Console.WriteLine("成人です");
}

age >= 18の結果はtrueまたはfalseになるため、if文の条件として使えます。

3-2. trueの場合に処理を実行する書き方

bool型の値がtrueの場合に処理を実行したいときは、変数をそのままif文に書きます。

C#
bool isMember = true;

if (isMember)
{
Console.WriteLine("会員です");
}

次のように== trueと書くこともできますが、通常は省略して書くほうが一般的です。

C#
if (isMember == true)
{
Console.WriteLine("会員です");
}

どちらも動作しますが、if (isMember)のほうが簡潔で読みやすいです。

3-3. falseの場合に処理を実行する書き方

bool型の値がfalseの場合に処理を実行したいときは、!を使います。!は否定を表す論理演算子です。

C#
bool isLoggedIn = false;

if (!isLoggedIn)
{
Console.WriteLine("ログインしていません");
}

!isLoggedInは、「isLoggedInではない」という意味です。つまり、isLoggedInfalseのときにtrueになります。

次のように書くこともできます。

C#
if (isLoggedIn == false)
{
Console.WriteLine("ログインしていません");
}

初心者のうちは== falseのほうが意味を理解しやすい場合もありますが、C#では!変数名という書き方もよく使われます。

3-4. else・else ifとbool型の組み合わせ

bool型は、elseelse ifとも組み合わせて使えます。

C#
bool isLoggedIn = true;

if (isLoggedIn)
{
Console.WriteLine("マイページを表示します");
}
else
{
Console.WriteLine("ログインページを表示します");
}

条件がtrueならifの処理、falseならelseの処理が実行されます。

複数の条件を判定したい場合は、else ifを使います。

C#
int score = 75;

if (score >= 90)
{
Console.WriteLine("評価はAです");
}
else if (score >= 70)
{
Console.WriteLine("評価はBです");
}
else
{
Console.WriteLine("評価はCです");
}

このように、比較式の結果もboolになるため、if文の条件として使えます。

4. 比較演算子でbool値を作る方法

4-1. ==や!=で等しいかどうかを判定する

比較演算子を使うと、比較結果としてbool値を得ることができます。

==は「等しい」、!=は「等しくない」を表します。

C#
int a = 10;
int b = 10;

bool result = a == b;

Console.WriteLine(result); // True

abはどちらも10なので、a == bの結果はtrueです。

C#
int x = 10;
int y = 20;

bool result = x != y;

Console.WriteLine(result); // True

xyは異なる値なので、x != yの結果はtrueになります。

4-2. >・<・>=・<=で大小を判定する

数値の大小を判定するときは、><>=<=を使います。

C#
int age = 18;

bool canVote = age >= 18;

Console.WriteLine(canVote); // True

主な比較演算子は次のとおりです。

C#
int number = 10;

Console.WriteLine(number > 5); // True
Console.WriteLine(number < 5); // False
Console.WriteLine(number >= 10); // True
Console.WriteLine(number <= 9); // False

これらの比較式の結果は、すべてbool型です。

4-3. 文字列や数値の比較結果をboolで受け取る

bool型は、数値だけでなく文字列の比較結果を受け取ることもできます。

C#
string name = "Taro";

bool isTaro = name == "Taro";

Console.WriteLine(isTaro); // True

文字列が一致していればtrue、一致していなければfalseになります。

C#
string password = "abc123";

bool isCorrectPassword = password == "abc123";

if (isCorrectPassword)
{
Console.WriteLine("パスワードが正しいです");
}

このように、比較結果を一度bool型の変数に入れると、条件の意味がわかりやすくなります。

4-4. 条件式の結果はbool型になる

C#では、比較演算子を使った条件式の結果はbool型になります。

C#
int price = 1200;

bool isExpensive = price > 1000;

price > 1000の結果はtrueまたはfalseです。そのため、bool型の変数に代入できます。

もちろん、if文に直接書くこともできます。

C#
if (price > 1000)
{
Console.WriteLine("1000円より高いです");
}

条件式をそのまま書くか、bool変数に代入するかは、コードの読みやすさで判断するとよいでしょう。

5. 論理演算子で複数条件を扱う

5-1. &&で「かつ」を表す

&&は「かつ」を表す論理演算子です。複数の条件がすべてtrueの場合に、全体の結果がtrueになります。

C#
int age = 25;
bool hasTicket = true;

if (age >= 18 && hasTicket)
{
Console.WriteLine("入場できます");
}

この例では、age >= 18trueで、hasTickettrueの場合に処理が実行されます。

どちらか一方でもfalseなら、全体の結果はfalseになります。

C#
bool result = true && false;
Console.WriteLine(result); // False

5-2. ||で「または」を表す

||は「または」を表す論理演算子です。複数の条件のうち、1つでもtrueなら全体の結果がtrueになります。

C#
bool isMember = false;
bool hasCoupon = true;

if (isMember || hasCoupon)
{
Console.WriteLine("割引を適用できます");
}

この例では、会員でなくてもクーポンを持っていれば割引を適用できます。

C#
bool result = false || true;
Console.WriteLine(result); // True

||は、どれか1つの条件を満たせばよい場合に使います。

5-3. !でtrue/falseを反転する

!は、truefalseを反転する演算子です。

C#
bool isError = false;

bool isOk = !isError;

Console.WriteLine(isOk); // True

isErrorfalseなので、!isErrortrueになります。

if文でもよく使われます。

C#
bool isLoggedIn = false;

if (!isLoggedIn)
{
Console.WriteLine("ログインしてください");
}

!を使うと簡潔に書けますが、条件が複雑になると読みにくくなることがあります。その場合は、意味のある変数名を付けると理解しやすくなります。

5-4. 複雑な条件式を読みやすく書くコツ

複数の条件を組み合わせると、条件式が長くなりがちです。

C#
if (age >= 18 && hasTicket && !isBlocked)
{
Console.WriteLine("入場できます");
}

この程度であれば問題ありませんが、条件がさらに増えると読みにくくなります。その場合は、条件ごとにbool変数へ分けるとわかりやすくなります。

C#
bool isAdult = age >= 18;
bool canEnter = isAdult && hasTicket && !isBlocked;

if (canEnter)
{
Console.WriteLine("入場できます");
}

canEnterという変数名を見るだけで、「入場できるかどうか」を判定していることがわかります。

複雑な条件式では、処理を短くすることよりも、あとから読んだときに意味が伝わることを重視しましょう。

6. bool型でよく使う実践例

6-1. フラグ変数として使う

bool型は、フラグ変数としてよく使われます。フラグとは、状態を表す目印のようなものです。

C#
bool isFinished = false;

// 何らかの処理
isFinished = true;

if (isFinished)
{
Console.WriteLine("処理が完了しました");
}

この例では、処理が終わったかどうかをisFinishedで管理しています。

他にも、次のようなフラグ変数がよく使われます。

C#
bool isVisible = true;
bool isEnabled = false;
bool hasError = false;

フラグ変数を使うと、プログラムの状態をわかりやすく管理できます。

6-2. メソッドの戻り値として使う

bool型は、メソッドの戻り値としてもよく使われます。特に、処理が成功したかどうか、条件を満たしているかどうかを返す場合に便利です。

C#
bool IsAdult(int age)
{
return age >= 18;
}

このメソッドは、年齢が18歳以上ならtrue、そうでなければfalseを返します。

C#
int age = 20;

if (IsAdult(age))
{
Console.WriteLine("成人です");
}

メソッド名をIsAdultのようにすると、戻り値がboolであることがわかりやすくなります。

6-3. 入力チェックやエラーチェックに使う

ユーザーの入力内容が正しいかどうかを判定する場面でも、bool型はよく使われます。

C#
string userName = "Taro";

bool isValidName = userName.Length > 0;

if (isValidName)
{
Console.WriteLine("名前が入力されています");
}
else
{
Console.WriteLine("名前を入力してください");
}

エラーチェックにも使えます。

C#
bool hasError = false;

if (hasError)
{
Console.WriteLine("エラーが発生しました");
}
else
{
Console.WriteLine("正常に処理されました");
}

入力チェックやエラーチェックでは、isValidhasErrorcanSubmitのような名前を使うと、コードの意味が伝わりやすくなります。

6-4. TryParseで変換結果を判定する

C#では、文字列を数値などに変換するときにTryParseメソッドをよく使います。TryParseは、変換に成功したかどうかをboolで返します。

C#
string text = "123";

bool success = int.TryParse(text, out int number);

if (success)
{
Console.WriteLine($"変換成功: {number}");
}
else
{
Console.WriteLine("変換できませんでした");
}

int.TryParseは、変換できた場合にtrueを返し、変換できなかった場合にfalseを返します。

たとえば、次のように数値ではない文字列を渡すと、結果はfalseになります。

C#
string text = "abc";

bool success = int.TryParse(text, out int number);

Console.WriteLine(success); // False

例外を避けながら安全に変換したい場合は、TryParseboolを組み合わせると便利です。

7. bool型・booleanでよくあるエラーと対処法

7-1. booleanと書いてエラーになる場合

C#では、booleanという型名は使えません。

C#
boolean isActive = true; // エラー

正しくはboolです。

C#
bool isActive = true;

他のプログラミング言語の影響でbooleanと書いてしまうことがありますが、C#ではboolを使うと覚えておきましょう。

7-2. true/falseの大文字・小文字を間違えた場合

C#では、truefalseはすべて小文字で書きます。

C#
bool isActive = true;  // 正しい
bool hasError = false; // 正しい

次のように先頭を大文字にするとエラーになります。

C#
bool isActive = True;  // エラー
bool hasError = False; // エラー

C#は大文字と小文字を区別する言語です。そのため、truefalseboolは正しい小文字で書く必要があります。

7-3. intやstringをboolに直接代入できない場合

C#では、intstringboolに直接代入することはできません。

C#
bool flag = 1;      // エラー
bool flag2 = "true"; // エラー

数値の10をそのままboolとして扱うことはできません。判定式を使ってbool値に変換する必要があります。

C#
int value = 1;

bool flag = value == 1;

文字列の"true""false"boolに変換したい場合は、bool.Parsebool.TryParseを使います。

C#
string text = "true";

bool result = bool.Parse(text);

Console.WriteLine(result); // True

安全に変換したい場合は、bool.TryParseがおすすめです。

C#
string text = "true";

if (bool.TryParse(text, out bool result))
{
Console.WriteLine(result);
}

7-4. if文の条件式にbool以外を書いた場合

C#のif文では、条件式はbool型でなければなりません。

C#
int count = 1;

if (count)
{
Console.WriteLine("データがあります");
}

このコードはエラーになります。C#では、数値の01を自動的にfalsetrueとして扱いません。

正しくは、比較式を書きます。

C#
int count = 1;

if (count > 0)
{
Console.WriteLine("データがあります");
}

count > 0の結果はbool型になるため、if文の条件として使えます。

7-5. =と==を間違えた場合

初心者がよく間違えるのが、代入の=と比較の==です。

=は値を代入するときに使います。

C#
bool isActive = true;

==は等しいかどうかを比較するときに使います。

C#
if (isActive == true)
{
Console.WriteLine("有効です");
}

ただし、bool変数を判定する場合は、次のように書くのが一般的です。

C#
if (isActive)
{
Console.WriteLine("有効です");
}

比較したい場面で=を書いてしまうと、意図しない代入になったり、エラーになったりします。代入は=、比較は==と区別して覚えましょう。

8. bool?とNullable<bool>の使い方

8-1. bool?とは何か

bool型は通常、trueまたはfalseのどちらかしか扱えません。しかし、場合によっては「未設定」や「不明」という状態も表したいことがあります。

そのようなときに使うのがbool?です。

C#
bool? isApproved = null;

bool?は、Nullable<bool>の省略形です。

C#
Nullable<bool> isApproved = null;

一般的には、短く書けるbool?がよく使われます。

8-2. true・false・nullの3状態を扱う

bool?は、truefalsenullの3つの状態を扱えます。

C#
bool? isApproved = true;
bool? isRejected = false;
bool? isUnknown = null;

たとえば、アンケートの回答状態を表す場合に使えます。

C#
bool? answer = null;

この場合、trueは「はい」、falseは「いいえ」、nullは「未回答」といった意味を持たせることができます。

通常のboolでは「未回答」を表せないため、3状態が必要な場合はbool?を使います。

8-3. bool?をif文で使うときの注意点

bool?は、そのままif文の条件として使えません。

C#
bool? isApproved = true;

if (isApproved)
{
Console.WriteLine("承認済みです");
}

このコードはエラーになります。bool?にはnullの可能性があるため、C#はそのまま条件式として扱えません。

trueかどうかを判定したい場合は、次のように書きます。

C#
bool? isApproved = true;

if (isApproved == true)
{
Console.WriteLine("承認済みです");
}

falseかどうかを判定する場合は、次のように書きます。

C#
if (isApproved == false)
{
Console.WriteLine("否認されています");
}

nullかどうかを判定することもできます。

C#
if (isApproved == null)
{
Console.WriteLine("未設定です");
}

8-4. HasValueとValueの基本

bool?では、値が入っているかどうかをHasValueで確認できます。

C#
bool? isApproved = null;

if (isApproved.HasValue)
{
Console.WriteLine(isApproved.Value);
}
else
{
Console.WriteLine("値がありません");
}

HasValuetrueの場合、Valueで中身のbool値を取り出せます。

ただし、nullの状態でValueを使うとエラーになります。

C#
bool? isApproved = null;

// Console.WriteLine(isApproved.Value); // エラー

そのため、Valueを使う前には必ずHasValueで確認するか、== trueのような比較を使うと安全です。

C#
bool? isApproved = true;

if (isApproved == true)
{
Console.WriteLine("承認済みです");
}

9. bool型を読みやすく使うための命名ルール

9-1. is・has・canを使った変数名

bool型の変数名には、ishascanなどを使うと意味が伝わりやすくなります。

C#
bool isActive = true;
bool hasError = false;
bool canEdit = true;

それぞれ、次のような意味になります。

C#
isActive  // 有効かどうか
hasError // エラーがあるかどうか
canEdit // 編集できるかどうか

bool型は「はい・いいえ」で答えられる名前にすると、コードが読みやすくなります。

9-2. 意味が伝わりにくいbool変数名の例

次のような変数名は、何を表しているのかがわかりにくいです。

C#
bool flag = true;
bool check = false;
bool data = true;

flagcheckは一見便利ですが、具体的な意味が伝わりません。

たとえば、次のように書くと意味が明確になります。

C#
bool isCompleted = true;
bool hasPermission = false;
bool isDataLoaded = true;

変数名を見ただけで、何を判定しているのかがわかるようにしましょう。

9-3. 否定形の変数名を避ける理由

bool型の変数名では、否定形を使いすぎると条件式が読みにくくなります。

C#
bool isNotActive = false;

if (!isNotActive)
{
Console.WriteLine("有効です");
}

このコードは、!isNotActiveという二重否定のような形になり、意味を理解しにくくなります。

できるだけ肯定形の名前を使いましょう。

C#
bool isActive = true;

if (isActive)
{
Console.WriteLine("有効です");
}

肯定形の変数名にすると、if文の条件も自然に読めます。

9-4. 初心者が意識したいコードの読みやすさ

初心者のうちは、コードを短く書くことよりも、意味がわかりやすいコードを書くことが大切です。

たとえば、次のコードは条件式が直接書かれています。

C#
if (age >= 18 && hasTicket && !isBlocked)
{
Console.WriteLine("入場できます");
}

これを、意味のあるbool変数に分けると読みやすくなります。

C#
bool isAdult = age >= 18;
bool canEnter = isAdult && hasTicket && !isBlocked;

if (canEnter)
{
Console.WriteLine("入場できます");
}

bool型の変数名を丁寧に付けることで、コード全体の意図が伝わりやすくなります。

10. C#のboolean・bool型に関するよくある質問

10-1. C#にboolean型はありますか?

C#では、通常booleanという型名は使いません。真偽値を扱う場合はbool型を使います。

C#
bool isActive = true;

なお、boolは.NETのSystem.Booleanの別名です。そのため、System.Booleanと書くこともできます。

C#
System.Boolean isActive = true;

ただし、一般的なC#のコードではboolを使うことがほとんどです。

10-2. boolとBooleanはどちらを使うべきですか?

基本的にはboolを使うのがおすすめです。

C#
bool isValid = true;

boolはC#のキーワードで、短く読みやすい書き方です。System.Booleanは.NETの型名であり、意味としては同じですが、通常のコードではあまり書く必要はありません。

初心者は、まずboolを使うと覚えておけば問題ありません。

10-3. bool型を数値の0や1に変換できますか?

C#では、boolと数値の01は自動変換されません。

C#
bool flag = 1; // エラー

数値をboolにしたい場合は、比較式を使います。

C#
int value = 1;

bool flag = value == 1;

逆に、bool01にしたい場合は、条件演算子を使うとわかりやすいです。

C#
bool flag = true;

int number = flag ? 1 : 0;

Console.WriteLine(number); // 1

10-4. stringの"true"や"false"をboolに変換できますか?

文字列の"true""false"は、bool.Parseまたはbool.TryParseboolに変換できます。

C#
string text = "true";

bool value = bool.Parse(text);

Console.WriteLine(value); // True

ただし、変換できない文字列をbool.Parseに渡すとエラーになります。

C#
string text = "yes";

// bool value = bool.Parse(text); // エラー

安全に変換したい場合は、bool.TryParseを使いましょう。

C#
string text = "true";

if (bool.TryParse(text, out bool value))
{
Console.WriteLine(value);
}
else
{
Console.WriteLine("boolに変換できません");
}

10-5. bool型はいつ使うのが適切ですか?

bool型は、「はい・いいえ」「有効・無効」「成功・失敗」のように、2択で表せる状態を扱うときに適しています。

たとえば、次のような場面で使います。

C#
bool isLoggedIn = true;
bool hasError = false;
bool canSave = true;
bool isCompleted = false;

ログイン状態、エラーの有無、保存できるかどうか、処理が完了したかどうかなど、条件や状態を表す場合にbool型はとても便利です。

ただし、「未設定」「不明」などの状態も必要な場合は、bool?を使うことを検討しましょう。

C#
bool? isApproved = null;

まとめ

C#でbooleanにあたる型は、bool型です。C#ではbooleanという型名ではなく、boolを使ってtrueまたはfalseの値を扱います。

bool型は、条件分岐、比較演算子、論理演算子、フラグ変数、メソッドの戻り値、入力チェックなど、さまざまな場面で使われます。

基本的な使い方は次のとおりです。

C#
bool isActive = true;

if (isActive)
{
Console.WriteLine("有効です");
}

比較式の結果もbool型になります。

C#
int age = 20;

bool isAdult = age >= 18;

複数の条件を扱う場合は、&&||!などの論理演算子を使います。

C#
bool canEnter = age >= 18 && hasTicket;

また、bool?を使うと、truefalsenullの3状態を扱えます。

C#
bool? isApproved = null;

初心者が特に注意したいポイントは、C#ではbooleanではなくboolを使うこと、truefalseは小文字で書くこと、if文の条件にはbool型の式を書くことです。

bool型を正しく使えるようになると、C#の条件分岐や判定処理がぐっと理解しやすくなります。変数名にはishascanなどを使い、意味が伝わる読みやすいコードを意識しましょう。