Conditional Logical Operators
CoddyのC#ジャーニー「ロジックとフロー」セクションの一部 — レッスン 37/66。
C# の条件論理演算子は、特殊な動作で条件を組み合わせる方法を提供します。主な条件論理演算子は 2 つあり、?? (null 合体演算子) と ?. (null 条件演算子) です。
まず、null 合体演算子 (??) を探求してみましょう。この演算子は、左辺のオペランドが null でない場合は左辺のオペランドを返し、そうでなければ右辺のオペランドを返します。
null になる可能性がある文字列変数を作成する:
string name = null;null 合体演算子を使用してデフォルト値を指定します:
string displayName = name ?? "Guest";上記のコードを実行した後、変数 displayName には:
"Guest"name に値があれば、その値が代わりに使用されます:
string name = "Alice";
string displayName = name ?? "Guest";今、displayName には:
"Alice"チャレンジ
簡単getSafeValue という名前のメソッドを作成し、2 つの引数を受け取るようにしてください:
- null 可能な整数 (
int?value) - 整数 (
intdefaultValue)
このメソッドは、value が null でない場合は value を、そうでなければ defaultValue を返してください。null 合併演算子 (??) を使用してこれを実現してください。
チートシート
null 合体演算子(??)は、左辺オペランドが null でない場合に左辺オペランドを返し、そうでなければ右辺オペランドを返します:
string name = null;
string displayName = name ?? "Guest"; // "Guest" を返しますstring name = "Alice";
string displayName = name ?? "Guest"; // "Alice" を返しますnull 条件演算子(?.)は、null である可能性のあるオブジェクトのメンバーに安全にアクセスできるようにします。
自分で試してみよう
using System;
class GetSafeValue
{
public static int getSafeValue(int? value, int defaultValue)
{
// ここにコードを書いてください
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
1Multi-dimensional Arrays
2D Arrays BasicsDeclaring and Initializing 2DAccessing 2D Array ElementsNested Loops with 2D ArraysJagged ArraysCommon Matrix OperationsRecap - Multi-dimensional4Flow Control Techniques
Early ReturnsGuard ClausesJump Statements (goto)Break and ContinueFlatten Nested Conditionals7Logical Operators Advanced
Short-Circuit EvaluationConditional Logical OperatorsOperator PrecedenceRecap - Advanced Operators2Advanced Decision Making
Multiple ConditionsComplex Boolean LogicIf vs. Switch ComparisonNested Switch StatementsRecap - Advanced Decisions5Exception Handling
Try-Catch BasicsException TypesMultiple Catch BlocksWorking with FilesFinally BlockUsing vs. Try-FinallyCustom ExceptionsRecap - Error Handling3Loop Enhancements
Loop PerformanceIterating ComplexEach Loop TypeRefactoring LoopsRecap - Optimized Loops6Null Handling
Null Reference BasicsNullable Value TypesNull Checking PatternsDefensive ProgrammingRecap - Null Safety