Operator Precedence
CoddyのC#ジャーニー「ロジックとフロー」セクションの一部 — レッスン 38/66。
演算子の優先順位は、式内で演算子が評価される順序を決定します。優先順位を理解することは、正しい論理式を書く上で極めて重要です。
この例を見てください:
int result = 5 + 3 * 2;result の値は何ですか? それは 11 で、16 ではありません。乗算は加算よりも優先順位が高いためです。
以下は簡略化した優先順位の順序(最高から最低へ)です:
- 括弧
() - 乗算/除算
* / % - 加算/減算
+ -
- 比較演算子
< > <= >= - 等価演算子
== !=
- 論理 AND
&& - 論理 OR
|| - 代入演算子
= += -=など。
これがどのように適用されるか見てみましょう:
bool result = 5 > 3 && 10 < 20 || 7 == 8;まず、比較が評価されます: 5 > 3 は true、10 < 20 は true、そして 7 == 8 は false。
次に、論理 AND: true && true は true。
最後に、論理 OR: true || false は true。
したがって結果はtrueです。
コードを明確にするために括弧を使用してください:
bool result = (5 > 3 && 10 < 20) || (7 == 8);チャレンジ
簡単名前が EvaluateExpression のメソッドを作成し、3つの整数 (a, b, c) を受け取り、boolean を返します。
このメソッドはこの式の結果を返すべきです:a > b || a == c && b < c
次に、名前が EvaluateWithParentheses のもう一つのメソッドを作成し、以下の式を評価します:(a > b || a == c) && b < c
プログラムはコンソールから3つの整数を読み込み、両方の評価結果を別々の行に印刷します。
チートシート
演算子の優先順位は、式内の演算子が評価される順序を決定します。
優先順位の順序(高いものから低いものへ):
- 括弧
() - 乗算/除算
* / % - 加算/減算
+ - - 比較演算子
< > <= >= - 等価演算子
== != - 論理 AND
&& - 論理 OR
|| - 代入演算子
= += -=など
例:
int result = 5 + 3 * 2; // result is 11, not 16複雑な論理式:
bool result = 5 > 3 && 10 < 20 || 7 == 8;
// Evaluates to: true && true || false = true || false = true明確にするために括弧を使用:
bool result = (5 > 3 && 10 < 20) || (7 == 8);自分で試してみよう
using System;
class Program
{
public static bool EvaluateExpression(int a, int b, int c)
{
// ここにコードを書いてください
}
public static bool EvaluateWithParentheses(int a, int b, int c)
{
// ここにコードを書いてください
}
static void Main(string[] args)
{
Console.WriteLine("Enter three integers:");
int a = int.Parse(Console.ReadLine());
int b = int.Parse(Console.ReadLine());
int c = int.Parse(Console.ReadLine());
// メソッドを呼び出して結果を出力してください
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
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