Operaattorien etusijajärjestys ja assosiatiivisuus
Ymmärtäkää evaluointijärjestys ja käyttäkää sulkeita.
Operaattorien etusijajärjestys ja assosiatiivisuus on ilmainen C# Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu C# Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. C# Academy-kurssilla on yhteensä 4 oppituntia.
Miksi etusijajärjestyksellä on merkitystä
Kun lausekkeessa on useita operaattoreita, C# määrittää niiden järjestyksen etusijan perusteella. Korkeamman etusijan operaattorit sitovat tiukemmin ja suoritetaan ensin.
using System;
class Program {
static void Main() {
Console.WriteLine(2 + 3 * 4);
}
}Kerto- ja jako-operaatiot ennen yhteen- ja vähennyslaskuja
* / % -operaattoreilla on korkeampi etusija kuin + - -operaattoreilla, joten ne suoritetaan ensin aivan kuten matematiikassa.
using System;
class Program {
static void Main() {
Console.WriteLine(10 - 2 * 3);
Console.WriteLine(20 / 4 + 1);
}
}Sulkeet muuttavat järjestystä
Sulkeilla on korkein etusija. Käyttäkää niitä halutun suoritusjärjestyksen pakottamiseen ja tarkoituksen ilmaisemiseen selkeästi.
using System;
class Program {
static void Main() {
Console.WriteLine((2 + 3) * 4);
Console.WriteLine(2 + (3 * 4));
}
}Vertailu ja aritmetiikka
Aritmeettiset operaatiot suoritetaan ennen vertailua. Lausekkeessa a + b > c yhteenlasku suoritetaan ensin ja sen jälkeen vertailu.
using System;
class Program {
static void Main() {
int a = 3, b = 4, c = 5;
Console.WriteLine(a + b > c);
}
}Loogisten operaattoreiden järjestys
&&-operaattorilla on korkeampi etusija kuin ||-operaattorilla. Lausekkeessa a || b && c AND-operaatio sidotaan ensin.
using System;
class Program {
static void Main() {
bool r = true || false && false;
Console.WriteLine(r);
}
}Etusijajärjestys lyhyesti
Suunnilleen korkeimmasta matalimpaan: sulkeet, unaariset operaattorit (! ~ -), * / %, + -, siirrot, vertailut, yhtäsuuruusvertailut, bittioperaattorit, &&, || ja lopuksi sijoitus.
using System;
class Program {
static void Main() {
int x = 1 + 2 << 1;
Console.WriteLine(x);
}
}Assosiatiivisuus: vasemmalta oikealle
Kun operaattoreilla on sama etusija, assosiatiivisuus määrittää suunnan. Useimmat binäärioperaattorit ovat vasemmalta assosiatiivisia: 10 - 4 - 2 tarkoittaa (10 - 4) - 2.
using System;
class Program {
static void Main() {
Console.WriteLine(10 - 4 - 2);
Console.WriteLine(100 / 5 / 2);
}
}Oikealta assosiatiivinen sijoitus
Sijoitus on oikealta assosiatiivinen. Lausekkeessa a = b = 5 arvo 5 sijoitetaan ensin muuttujaan b ja sitten tämä tulos muuttujaan a.
using System;
class Program {
static void Main() {
int a, b;
a = b = 5;
Console.WriteLine(a + " " + b);
}
}Unaariset operaattorit sitovat tiukasti
Unaariset operaattorit !, ~ ja negaatio suoritetaan ennen binäärioperaattoreita. Lausekkeessa -3 + 2 luku 3 negatoidaan ensin.
using System;
class Program {
static void Main() {
Console.WriteLine(-3 + 2);
Console.WriteLine(!false && true);
}
}Ehdollinen operaattori
Kolmihaaraisella ?:-operaattorilla on matala etusija, juuri sijoituksen yläpuolella. Käyttäkää sulkeita monimutkaisissa ehdoissa varmuuden vuoksi.
using System;
class Program {
static void Main() {
int n = 7;
string s = n % 2 == 0 ? "even" : "odd";
Console.WriteLine(s);
}
}Selkeys on nokkeluutta tärkeämpää
Vaikka etusijajärjestys tekisi sulkeista valinnaisia, niiden lisääminen tekee koodista usein helpommin luettavaa ja tarkistettavaa.
using System;
class Program {
static void Main() {
int a = 2, b = 3, c = 4;
int result = (a * b) + (c * 2);
Console.WriteLine(result);
}
}Pikatesti
Testatkaa etusijajärjestyksen ja assosiatiivisuuden ymmärtämistänne.
Kertaus
Etusijajärjestys määrittää, mitkä operaattorit suoritetaan ensin: * ja / ovat etusijalla +- ja --operaattoreihin nähden, ja sulkeet ohittavat kaikki muut. Assosiatiivisuus ratkaisee saman etusijan omaavien operaattoreiden järjestyksen: useimmat käsitellään vasemmalta oikealle, kun taas sijoitus käsitellään oikealta vasemmalle.
Jos olette epävarma, lisätkää sulkeet selkeyden vuoksi.
Opi C# tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 93
- Oppitunnit
- 346
Usein kysytyt kysymykset
Onko oppitunti ”Operaattorien etusijajärjestys ja assosiatiivisuus” ilmainen?
Kyllä – oppitunnin ”Operaattorien etusijajärjestys ja assosiatiivisuus” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko C# Academy-kurssin, päivitä CoddyKit PROhon. C# Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Operaattorien etusijajärjestys ja assosiatiivisuus”?
Ymmärtäkää evaluointijärjestys ja käyttäkää sulkeita. Harjoittelet C# Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni C# Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin C# Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”Operaattorien etusijajärjestys ja assosiatiivisuus”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä C# Academy-oppitunnilla?
Kyllä. Jokainen C# Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Aritmeettiset ja sijoitusoperaattorit
- Vertailu- ja loogiset operaattorit
- Bitti- ja siirto-operaattorit
- Operaattorien etusijajärjestys ja assosiatiivisuus