C# Academy · Lesson

Operator Precedence and Associativity

Understand evaluation order and use parentheses.

Lesson 4 of 413 steps

Operator Precedence and Associativity is a free C# Academy lesson on CoddyKit. This is lesson 4 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the C# Academy learning path, and your progress syncs across the web and the CoddyKit app. The C# Academy course includes 4 lessons in total.

Why Precedence Matters

When an expression mixes operators, C# decides the order using precedence. Higher-precedence operators bind tighter and run first.

using System;

class Program {
    static void Main() {
        Console.WriteLine(2 + 3 * 4);
    }
}

Multiplicative Before Additive

* / % have higher precedence than + -, so they execute first, just like in math class.

using System;

class Program {
    static void Main() {
        Console.WriteLine(10 - 2 * 3);
        Console.WriteLine(20 / 4 + 1);
    }
}

Parentheses Override Order

Parentheses have the highest precedence. Use them to force the order you want and to make intent clear.

using System;

class Program {
    static void Main() {
        Console.WriteLine((2 + 3) * 4);
        Console.WriteLine(2 + (3 * 4));
    }
}

Comparison vs Arithmetic

Arithmetic runs before comparison. In a + b > c, the addition happens first, then the comparison.

using System;

class Program {
    static void Main() {
        int a = 3, b = 4, c = 5;
        Console.WriteLine(a + b > c);
    }
}

Logical Operator Order

&& has higher precedence than ||. In a || b && c, the AND binds first.

using System;

class Program {
    static void Main() {
        bool r = true || false && false;
        Console.WriteLine(r);
    }
}

A Precedence Snapshot

Rough order, highest to lowest: parentheses, unary (! ~ -), * / %, + -, shifts, comparisons, equality, bitwise, &&, ||, then assignment.

using System;

class Program {
    static void Main() {
        int x = 1 + 2 << 1;
        Console.WriteLine(x);
    }
}

Associativity: Left to Right

When operators share precedence, associativity decides direction. Most binary operators are left-associative: 10 - 4 - 2 is (10 - 4) - 2.

using System;

class Program {
    static void Main() {
        Console.WriteLine(10 - 4 - 2);
        Console.WriteLine(100 / 5 / 2);
    }
}

Right-Associative Assignment

Assignment is right-associative. a = b = 5 assigns 5 to b first, then that result to a.

using System;

class Program {
    static void Main() {
        int a, b;
        a = b = 5;
        Console.WriteLine(a + " " + b);
    }
}

Unary Operators Bind Tightly

Unary !, ~, and negation apply before binary operators. -3 + 2 negates 3 first.

using System;

class Program {
    static void Main() {
        Console.WriteLine(-3 + 2);
        Console.WriteLine(!false && true);
    }
}

The Conditional Operator

The ternary ?: has low precedence, just above assignment. Parenthesize complex conditions to stay safe.

using System;

class Program {
    static void Main() {
        int n = 7;
        string s = n % 2 == 0 ? "even" : "odd";
        Console.WriteLine(s);
    }
}

Clarity Beats Cleverness

Even when precedence makes parentheses optional, adding them often makes code easier to read and review.

using System;

class Program {
    static void Main() {
        int a = 2, b = 3, c = 4;
        int result = (a * b) + (c * 2);
        Console.WriteLine(result);
    }
}

Quick Check

Test your understanding of precedence and associativity.

Recap

Precedence sets which operators run first; * and / outrank + and -, and parentheses outrank everything. Associativity breaks ties among equal-precedence operators: most go left to right, while assignment goes right to left.

When in doubt, add parentheses for clarity.

Free to start

Learn C# with an AI tutor — free

Write and run real code in your browser, get instant help from a 24/7 AI tutor, and pick up where you left off on the web or in the app.

Courses
93
Lessons
346

Frequently Asked Questions

Is the “Operator Precedence and Associativity” lesson free?

Yes — the full text of “Operator Precedence and Associativity” is free to read here on the web. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the C# Academy course, upgrade to CoddyKit PRO. The C# Academy course includes 4 lessons in total.

What will I learn in “Operator Precedence and Associativity”?

Understand evaluation order and use parentheses. You practise C# Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start C# Academy?

No prior experience is required. C# Academy on CoddyKit is structured for beginners through advanced learners, so you can start here or from the beginning and move at your own pace. This is lesson 4 of 4.

How long does the “Operator Precedence and Associativity” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this C# Academy lesson?

Yes. Every C# Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Arithmetic and Assignment Operators
  2. Comparison and Logical Operators
  3. Bitwise and Shift Operators
  4. Operator Precedence and Associativity
← Back to C# Academy