Operator Precedence
Coddy PHP 여정의 기초 섹션에 포함된 레슨 — 71개 중 20번째.
표식에 여러 연산자가 포함되어 있을 때, PHP는 연산자 우선순위라고 불리는 특정 순서를 따릅니다. 수학에서와 마찬가지로 곱셈과 나눗셈은 덧셈과 뺄셈보다 먼저 수행됩니다.
<?php
echo 5 + 3 * 2; // 출력: 11, 16이 아님
?>PHP는 먼저 3 × 2를 곱하여 6을 얻은 다음, 5를 더합니다. 만약 연산자들의 우선순위가 같다면, 왼쪽에서 오른쪽으로 계산되어 5 + 3 = 8이 되고, 그 다음 8 × 2 = 16이 되었을 것입니다. 하지만 실제로는 그렇게 작동하지 않습니다.
배운 연산자들에 대해 우선순위가 높은 것부터 낮은 것 순으로 정리하면 다음과 같습니다:
| 우선순위 | 연산자 |
| 가장 높음 | ** (거듭제곱) |
| 높음 | * / % |
| 낮음 | + - |
기본 순서를 재정의하려면 괄호를 사용하세요. 괄호 안의 연산이 항상 먼저 계산됩니다:
<?php
echo (5 + 3) * 2; // 출력: 16
echo 2 ** 3 * 2; // 출력: 16 (8 * 2)
echo 2 ** (3 * 2); // 출력: 64 (2^6)
?>확실하지 않을 때는 괄호를 사용하여 의도를 명확하게 하세요. 그렇게 하면 코드를 더 읽기 쉽게 만들고 예상치 못한 결과를 방지할 수 있습니다.
챌린지
쉬움입력에서 세 개의 숫자 a, b, c를 읽습니다.
괄호를 사용하여 덧셈이 곱셈보다 먼저 수행되도록 하여 다음 식의 결과를 계산하고 출력하세요:
(a + b) * c ** 2
이것은 다음을 의미합니다: 먼저 a와 b를 더한 다음, 그 합계에 c의 2제곱을 곱합니다.
예시:
입력이 2, 3, 4인 경우, 결과는 80이 되어야 합니다. 이유는 다음과 같습니다:
- 먼저, 2 + 3 = 5를 더합니다.
- 그 다음, 4 ** 2 = 16을 계산합니다.
- 마지막으로, 5 * 16 = 80을 곱합니다.
직접 해보기
<?php
// 입력 읽기
$a = intval(fgets(STDIN));
$b = intval(fgets(STDIN));
$c = intval(fgets(STDIN));
// TODO: (a + b) * c ** 2를 계산하기 위한 코드를 아래에 작성하세요
// 결과 출력
echo $result;
?>이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators