Menu
Coddy logo textTech

Priorytet operatorów

Część sekcji Podstawy ścieżki PHP w Coddy. Lekcja 20 z 71.

Gdy wyrażenie zawiera wiele operatorów, PHP stosuje określoną kolejność zwaną priorytetem operatorów. Podobnie jak w matematyce, mnożenie i dzielenie wykonuje się przed dodawaniem i odejmowaniem.

<?php
echo 5 + 3 * 2; // Wynik: 11, a nie 16
?>

PHP najpierw mnoży 3 × 2 (otrzymując 6), a następnie dodaje 5. Gdyby operatory miały taki sam priorytet, obliczenia przebiegałyby od lewej do prawej: 5 + 3 = 8, a następnie 8 × 2 = 16. Ale tak to nie działa.

Oto kolejność działań operatorów, których się nauczyłeś — od najwyższego do najniższego priorytetu:

PriorytetOperatory
Najwyższy** (potęgowanie)
Wysoki* / %
Niski+ -

Aby zmienić domyślną kolejność, użyj nawiasów. Operacje w nawiasach są zawsze wykonywane jako pierwsze:

<?php
echo (5 + 3) * 2;  // Wypisuje: 16
echo 2 ** 3 * 2;   // Wypisuje: 16 (8 * 2)
echo 2 ** (3 * 2); // Wypisuje: 64 (2^6)
?>

W razie wątpliwości użyj nawiasów, aby jasno wyrazić swoje intencje. Dzięki temu Twój kod będzie łatwiejszy do czytania i unikniesz nieoczekiwanych rezultatów.

challenge icon

Wyzwanie

Łatwy

Wczytaj trzy liczby z wejścia: a, b i c.

Oblicz i wypisz wynik następującego wyrażenia, używając nawiasów, aby dodawanie odbyło się przed mnożeniem:

(a + b) * c ** 2

Oznacza to: najpierw dodaj a i b, a następnie pomnóż tę sumę przez c podniesione do potęgi 2.

Przykład:

Jeśli dane wejściowe to 2, 3 i 4, wynikiem powinno być 80, ponieważ:

  • Najpierw dodaj 2 + 3 = 5
  • Następnie oblicz 4 ** 2 = 16
  • Na koniec pomnóż 5 * 16 = 80

Spróbuj swoich sił

<?php
// Odczytaj dane wejściowe
$a = intval(fgets(STDIN));
$b = intval(fgets(STDIN));
$c = intval(fgets(STDIN));

// TODO: Napisz poniżej kod, który obliczy (a + b) * c ** 2

// Wyświetl wynik
echo $result;
?>
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator PHP online