C# Academy · Oppitunti

Operaattorien etusijajärjestys ja assosiatiivisuus

Ymmärtäkää evaluointijärjestys ja käyttäkää sulkeita.

Oppitunti 4/413 vaihetta

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.

Aloita maksutta

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

  1. Aritmeettiset ja sijoitusoperaattorit
  2. Vertailu- ja loogiset operaattorit
  3. Bitti- ja siirto-operaattorit
  4. Operaattorien etusijajärjestys ja assosiatiivisuus
← Takaisin: C# Academy