Priorytet operatorów
Część sekcji Logika i sterowanie przepływem ścieżki C# w Coddy. Lekcja 38 z 66.
Priorytet operatorów określa kolejność, w jakiej operatory są obliczane w wyrażeniu. Zrozumienie priorytetów ma kluczowe znaczenie dla pisania poprawnych wyrażeń logicznych.
Spójrz na ten przykład:
int result = 5 + 3 * 2;Jaka jest wartość zmiennej result? To 11, a nie 16, ponieważ mnożenie ma wyższy priorytet niż dodawanie.
Oto uproszczona kolejność priorytetów (od najwyższego do najniższego):
- Nawiasy
() - Mnożenie/dzielenie
* / % - Dodawanie/odejmowanie
+ -
- Operatory porównania
< > <= >= - Operatory równości
== !=
- Logiczne AND
&& - Logiczne OR
|| - Operatory przypisania
= += -=itd.
Zobaczmy, jak to działa:
bool result = 5 > 3 && 10 < 20 || 7 == 8;Najpierw wykonywane są porównania: 5 > 3 daje true, 10 < 20 daje true, a 7 == 8 daje false.
Następnie logiczne AND: true && true daje true.
Na końcu logiczne OR: true || false daje true.
Zatem wynik to true.
Używaj nawiasów, aby Twój kod był bardziej czytelny:
bool result = (5 > 3 && 10 < 20) || (7 == 8);Wyzwanie
ŁatwyUtwórz metodę o nazwie EvaluateExpression, która przyjmuje trzy liczby całkowite (a, b, c) i zwraca wartość logiczną.
Twoja metoda powinna zwracać wynik tego wyrażenia:a > b || a == c && b < c
Następnie utwórz inną metodę o nazwie EvaluateWithParentheses, która oblicza:(a > b || a == c) && b < c
Twój program powinien wczytać trzy liczby całkowite z konsoli i wypisać wyniki obu obliczeń w osobnych wierszach.
Spróbuj swoich sił
using System;
class Program
{
public static bool EvaluateExpression(int a, int b, int c)
{
// Wpisz tutaj swój kod
}
public static bool EvaluateWithParentheses(int a, int b, int c)
{
// Wpisz tutaj swój kod
}
static void Main(string[] args)
{
Console.WriteLine("Enter three integers:");
int a = int.Parse(Console.ReadLine());
int b = int.Parse(Console.ReadLine());
int c = int.Parse(Console.ReadLine());
// Wywołaj swoje metody i wypisz wyniki
}
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i sterowanie przepływem
1Tablice wielowymiarowe
Podstawy tablic 2DDeklarowanie i inicjalizacja tablic 2DDostęp do elementów tablic 2DZagnieżdżone pętle z tablicami 2DTablice postrzępionePodstawowe operacje na macierzachPodsumowanie — tablice wielowymiarowe4Techniki sterowania przepływem
Wczesne zwrotyKlauzule ochronneInstrukcje skoku (goto)Break i continueSpłaszczanie zagnieżdżonych warunków7Zaawansowane operatory logiczne
Ewaluacja z krótkim spięciemWarunkowe operatory logicznePriorytet operatorówPowtórzenie — zaawansowane operatory2Zaawansowane podejmowanie decyzji
Wiele warunkówZłożona logika Boole’aPorównanie if i switchZagnieżdżone instrukcje switchPodsumowanie — zaawansowane decyzje5Obsługa wyjątków
Podstawy try-catchTypy wyjątkówWiele bloków catchPraca z plikamiBlok finallyusing a try-finallyWłasne wyjątkiPowtórzenie — obsługa błędów3Udoskonalenia pętli
Wydajność pętliIterowanie po złożonych strukturachKażdy typ pętliRefaktoryzacja pętliPodsumowanie — zoptymalizowane pętle6Obsługa wartości null
Podstawy referencji nullTypy wartości dopuszczające nullWzorce sprawdzania nullProgramowanie defensywnePodsumowanie — bezpieczeństwo nullPoćwicz samodzielnie: Kompilator C# online