Relaatio- ja logiikkamallit
Yhdistäkää ehtoja malleissa.
Relaatio- ja logiikkamallit on ilmainen C# Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/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.
Vertailukuviot
Vertailukuvio vertaa syötettä vakioon käyttäen operaattoria <, >, <= tai >=. Se täsmää, kun vertailu on tosi.
C# 9:ssä käyttöön otetut vertailukuviot tekevät vaihteluvälitarkistuksista tiiviitä switch-haaroissa ja is-lausekkeissa ilman erillisten vertailujen kirjoittamista.
int temp = 18;
string level = temp switch
{
< 0 => "freezing",
< 15 => "cold",
< 25 => "mild",
_ => "hot"
};
System.Console.WriteLine(level);Vertailu is-lausekkeella
Vertailukuvioita voi käyttää myös is-lausekkeissa, jolloin totuusarvotestit ovat helposti luettavia.
n is > 0 muistuttaa lähes englanninkielistä lausetta ja palauttaa bool-arvon, jota voitte käyttää ehdoissa, sijoituksissa tai LINQ-predikaateissa.
using System;
class Program {
static void Main() {
int score = 82;
bool passed = score is >= 60;
Console.WriteLine(passed);
}
}and-kuvio
Looginen and-kuvio edellyttää, että molemmat alikuviot täsmäävät. Se sopii erinomaisesti rajattuihin vaihteluväleihin.
>= 1 and <= 12 täsmää arvoihin, jotka ovat suljetulla vaihteluvälillä. Ilman and-kuviota kaksipuolisten rajojen ilmaiseminen yhtenä kuviona olisi mahdotonta.
int month = 6;
bool valid = month is >= 1 and <= 12;
System.Console.WriteLine(valid);or-kuvio
Looginen or-kuvio täsmää, kun jompikumpi alikuvio täsmää. Se kokoaa vaihtoehtoiset arvot yhdeksi haaraksi.
Sen sijaan, että toistaisitte toisiinsa liittyvät tapaukset omissa haaroissaan, voitte yhdistää ne muodolla 'a' or 'e' or 'i'. Näin switch-lausekkeista tulee tiiviitä ja tarkoituksensa selkeästi ilmaisevia.
char c = 'e';
string kind = c switch
{
'a' or 'e' or 'i' or 'o' or 'u' => "vowel",
_ => "consonant"
};
System.Console.WriteLine(kind);not-kuvio
Looginen not-kuvio täsmää, kun sen alikuvio ei täsmää. Yleisin käyttötapaus on not null.
Se voi myös kieltää muita kuvioita, kuten not 0 tai not (> 100), joten poissulkemiset voi ilmaista selkeästi yhdessä haarassa.
object? value = "hi";
if (value is not null)
System.Console.WriteLine("present");Loogisten kuvioiden yhdistäminen
Loogisia kuvioita voi yhdistellä. Voitte ketjuttaa kuvioita and, or ja not käyttämällä sulkeita laskentajärjestyksen hallintaan.
Laskentajärjestys on seuraava: not sitoutuu tiukimmin, sitten and ja lopuksi or. Lisätkää sulkeet aina, kun tarkoitus saattaa jäädä epäselväksi.
using System;
class Program {
static string Classify(int n) => n switch {
< 0 or > 100 => "out of range",
>= 0 and <= 50 => "low half",
_ => "high half"
};
static void Main() => Console.WriteLine(Classify(75));
}Arvosanojen vaihteluvälit
Vertailu- ja loogiset kuviot yhdessä mallintavat perinteiset arvosanataulukot selkeästi.
Koska haarat tarkistetaan ylhäältä alas, voitte käyttää yksinkertaisia ylärajoja tai yhdistää rajat and-kuvion avulla selkeiksi vaihteluväleiksi. Molemmat tavat ovat kelvollisia; valitkaa selkeämpi.
using System;
class Program {
static char Grade(int s) => s switch {
>= 90 => 'A',
>= 80 and < 90 => 'B',
>= 70 and < 80 => 'C',
_ => 'F'
};
static void Main() => Console.WriteLine(Grade(85));
}not null ominaisuuskuvioiden kanssa
not null -kuvion yhdistäminen tyyppi- ja ominaisuuskuvioihin tuottaa turvallisia ja ilmaisuvoimaisia ehtoja.
obj is Person { Name: not null } p täsmää ei-null-arvoiseen Person-olioon, jonka Name on myös ei-null-arvoinen, ja sitoo olion muuttujaan. Näin vältetään peräkkäiset null-tarkistukset.
record Person(string? Name);
object obj = new Person("Kai");
if (obj is Person { Name: not null } p)
System.Console.WriteLine(p.Name);Vaihteluvälien kieltäminen
Voitte kieltää vertailuryhmän not-kuviolla ja sulkeilla, kun haluatte ilmaista poissulkemisia.
not (>= 1 and <= 5) täsmää kaikkeen vaihteluvälin 1–5 ulkopuolella. Joillekin lukijoille tämä on suoraviivaisempi kuin vastaava < 1 or > 5.
using System;
class Program {
static void Main() {
int n = 9;
bool outside = n is not (>= 1 and <= 5);
Console.WriteLine(outside);
}
}Yhdistäminen tyyppikuvioihin
Loogisia kuvioita voi yhdistää myös tyyppikuvioihin. o is int or long täsmää kokonaislukutyyppien tarkistuksessa yhdellä lausekkeella.
Tämä on kätevää, kun useita toisiinsa liittyviä tyyppejä käsitellään samalla tavalla. Huomioikaa, että or-lausekkeen molempien puolien on oltava yhteensopivia käyttötavan kanssa.
object o = 5L;
string kind = o switch
{
int or long => "integral",
float or double => "floating",
_ => "other"
};
System.Console.WriteLine(kind);Luettavuusohjeet
Loogiset kuviot ovat ilmaisuvoimaisia, mutta niistä voi tulla raskaita. Pidä haarat lyhyinä, suosi alueita and-operaattorin avulla ja käytä sulkeita yhdistetyissä and/or-ilmauksissa selkeyden vuoksi.
Kun ehto tarvitsee useita lausekkeita tai ulkoisia muuttujia, when-ehto voi olla helpommin luettava kuin pitkä looginen kuvio. Valitse vaihtoehto, joka ilmaisee tarkoituksen selkeimmin.
int n = 42;
string r = n switch
{
> 0 and < 10 when n % 2 == 0 => "small even",
_ => "other"
};
System.Console.WriteLine(r);Pikatarkistus
Testatkaa relaatio- ja loogisia kuvioita koskeva ymmärryksenne.
Kertaus
Relaatiokuviot (< > <= >=) vertaavat arvoja vakioihin. Loogiset kuviot yhdistävät alikuvioita and-, or- ja not-operaattoreilla.
Prioriteettijärjestys on not, sitten and ja lopuksi or; käyttäkää sulkeita, kun operaattoreita yhdistetään. Seuraavaksi käsittelemme lista- ja monikkokuvioita.
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 ”Relaatio- ja logiikkamallit” ilmainen?
Kyllä – oppitunnin ”Relaatio- ja logiikkamallit” 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 ”Relaatio- ja logiikkamallit”?
Yhdistäkää ehtoja malleissa. 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 3/4.
Kuinka kauan ”Relaatio- ja logiikkamallit”-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
- switch-lausekkeet
- Tyyppi- ja ominaisuusmallit
- Relaatio- ja logiikkamallit
- Lista- ja tuple-mallit