연산자 우선순위
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를 더한 다음, 그 합에 2의 거듭제곱을 한 c를 곱한다는 의미입니다.
예시:
입력이 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;
?>이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: 온라인 PHP 컴파일러