Operatorprioritet och associativitet
Förstå utvärderingsordningen och använd parenteser.
Operatorprioritet och associativitet är en gratis lektion i C# Academy på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för C# Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i C# Academy innehåller totalt 4 lektioner.
Varför prioritet spelar roll
När ett uttryck blandar operatorer bestämmer C# ordningen med hjälp av prioritet. Operatorer med högre prioritet binder hårdare och körs först.
using System;
class Program {
static void Main() {
Console.WriteLine(2 + 3 * 4);
}
}Multiplikation före addition
* / % har högre prioritet än + -, så de utförs först, precis som i matematiken.
using System;
class Program {
static void Main() {
Console.WriteLine(10 - 2 * 3);
Console.WriteLine(20 / 4 + 1);
}
}Parenteser åsidosätter ordningen
Parenteser har högst prioritet. Använd dem för att tvinga fram den ordning du vill ha och för att tydliggöra avsikten.
using System;
class Program {
static void Main() {
Console.WriteLine((2 + 3) * 4);
Console.WriteLine(2 + (3 * 4));
}
}Jämförelse och aritmetik
Aritmetik utförs före jämförelser. I a + b > c utförs additionen först och därefter jämförelsen.
using System;
class Program {
static void Main() {
int a = 3, b = 4, c = 5;
Console.WriteLine(a + b > c);
}
}Logiska operatorers ordning
&& har högre prioritet än ||. I a || b && c binder AND först.
using System;
class Program {
static void Main() {
bool r = true || false && false;
Console.WriteLine(r);
}
}En översikt över prioriteten
Ungefärlig ordning, från högst till lägst: parenteser, unära operatorer (! ~ -), * / %, + -, skiftningar, jämförelser, likhet, bitvisa operatorer, &&, || och därefter tilldelning.
using System;
class Program {
static void Main() {
int x = 1 + 2 << 1;
Console.WriteLine(x);
}
}Associativitet: från vänster till höger
När operatorer har samma prioritet avgör associativiteten riktningen. De flesta binära operatorer är vänsterassociativa: 10 - 4 - 2 är (10 - 4) - 2.
using System;
class Program {
static void Main() {
Console.WriteLine(10 - 4 - 2);
Console.WriteLine(100 / 5 / 2);
}
}Högerassociativ tilldelning
Tilldelning är högerassociativ. a = b = 5 tilldelar först 5 till b och sedan samma resultat till a.
using System;
class Program {
static void Main() {
int a, b;
a = b = 5;
Console.WriteLine(a + " " + b);
}
}Unära operatorer binder hårt
Unära operatorer som !, ~ och negation tillämpas före binära operatorer. -3 + 2 negerar 3 först.
using System;
class Program {
static void Main() {
Console.WriteLine(-3 + 2);
Console.WriteLine(!false && true);
}
}Den villkorliga operatorn
Den ternära operatorn ?: har låg prioritet, precis över tilldelning. Sätt komplexa villkor inom parentes för att undvika problem.
using System;
class Program {
static void Main() {
int n = 7;
string s = n % 2 == 0 ? "even" : "odd";
Console.WriteLine(s);
}
}Tydlighet går före finurlighet
Även när prioriteten gör parenteser valfria blir koden ofta enklare att läsa och granska om du lägger till dem.
using System;
class Program {
static void Main() {
int a = 2, b = 3, c = 4;
int result = (a * b) + (c * 2);
Console.WriteLine(result);
}
}Snabbtest
Testa dina kunskaper om prioritet och associativitet.
Sammanfattning
Prioritet avgör vilka operatorer som körs först. * och / har högre prioritet än + och -, och parenteser har högre prioritet än allt annat. Associativitet avgör ordningen mellan operatorer med samma prioritet: de flesta går från vänster till höger, medan tilldelning går från höger till vänster.
Vid osäkerhet kan du lägga till parenteser för tydlighetens skull.
Lär dig C# med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 93
- Lektioner
- 346
Vanliga frågor
Är lektionen ”Operatorprioritet och associativitet” gratis?
Ja – hela texten till ”Operatorprioritet och associativitet” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i C# Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i C# Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Operatorprioritet och associativitet”?
Förstå utvärderingsordningen och använd parenteser. Ni övar på C# Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig C# Academy?
Du behöver inga förkunskaper. Utbildningen i C# Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Operatorprioritet och associativitet”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här C# Academy-lektionen?
Ja. Varje C# Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Aritmetiska operatorer och tilldelningsoperatorer
- Jämförelseoperatorer och logiska operatorer
- Bitvisa operatorer och skiftoperatorer
- Operatorprioritet och associativitet