본문 바로가기
JAVA

JAVA 표현식 [코딩백과 with JAVA]

by GangDev 2024. 12. 21.

표현식

Java에서 표현식(Expressions)은 변수, 연산자, 메서드 호출 등을 언어의 문법에 따라 구성하여 단일 값을 평가하는 코드 조각입니다. 표현식은 프로그램의 핵심 요소이며, 다양한 형태와 복잡도로 나타날 수 있습니다.

표현식의 기본 구조

표현식은 다음과 같은 요소들로 구성됩니다:

  1. 변수: 이미 선언된 변수를 참조합니다.
  2. 리터럴: 직접적인 값(예: 숫자, 문자열, 불리언 값) 사용합니다.
  3. 연산자: 산술, 비교, 논리 등의 작업을 수행합니다.
  4. 메서드 호출: 함수나 메서드를 실행합니다.

표현식의 예시

다음은 다양한 유형의 표현식 예시입니다:

public class ExpressionExamples {
    public static void main(String[] args) {
        // 변수와 리터럴의 조합
        int x = 5;
        int y = 3;
        int sum = x + y;
        System.out.println("Sum: " + sum);

        // 메서드 호출
        String greeting = "Hello";
        int length = greeting.length();
        System.out.println("Greeting length: " + length);

        // 산술 연산
        double pi = Math.PI;
        double area = pi * 5 * 5;
        System.out.println("Circle area: " + area);

        // 비교 연산
        boolean isEqual = 5 == 5;
        System.out.println("Is 5 equal to 5? " + isEqual);

        // 논리 연산
        boolean isGreater = 10 > 5;
        boolean isEven = 10 % 2 == 0;
        boolean result = isGreater && isEven;
        System.out.println("Is 10 greater than 5 and even? " + result);

        // 문자열 연결
        String name = "Alice";
        int age = 30;
        String description = name + " is " + age + " years old.";
        System.out.println(description);

        // 배열 요소 접근
        int[] scores = {90, 85, 95};
        int average = (scores[0] + scores[1] + scores[2]) / 3;
        System.out.println("Average score: " + average);

        // 조건부 연산자
        int max = (x > y) ? x : y;
        System.out.println("Max of " + x + " and " + y + ": " + max);
    }
}

출력 결과는 다음과 같습니다:

Sum: 8
Greeting length: 5
Circle area: 78.53981633974483
Is 5 equal to 5? true
Is 10 greater than 5 and even? true
Alice is 30 years old.
Average score: 90
Max of 5 and 3: 5

표현식의 데이터 타입

표현식의 결과 데이터 타입은 사용된 요소들에 따라 결정됩니다.

  • 할당 연산(cadence = 0) 은 왼쪽 피연산자의 타입(int)을 반환합니다.
  • 산술 연산(1 + 2)은 int를 반환합니다.
  • 비교 연산(value1 == value2)은 boolean을 반환합니다.
  • 문자열 연결("Element 1 at index 0: " + anArray[0])은 String을 반환합니다.

복합 표현식

Java는 여러 작은 표현식을 조합하여 복합 표현식을 만들 수 있습니다. 단, 각 부분의 데이터 타입이 일치해야 합니다. 예를 들어:

int product = 1 * 2 * 3; // 복합 산술 연산
boolean isValid = age > 18 && age < 65; // 복합 논리 연산

연산자 우선순위와 평가 순서

복잡한 표현식에서는 연산자의 우선순위가 중요합니다:

  1. 괄호를 사용하여 명시적으로 평가 순서를 지정할 수 있습니다.
  2. 명시적이지 않은 경우, Java의 연산자 우선순위 규칙에 따라 평가됩니다.

예를 들어:

x + y / 100 // 모호함 (ambiguous)
(x + y) / 100 // 명확함 (unambiguous)
x + (y / 100) // 명확함 (unambiguous)

코드 가독성과 유지보수성 향상을 위한 팁

  1. 복잡한 표현식에서는 항상 괄호를 사용하여 의도를 명확히 합니다.
    2긴 표현식을 여러 줄로 나누어 작성하면 가독성이 향상됩니다.
  2. 변수나 메서드 이름을 의미 있게 지어 표현식의 목적을 명확히 합니다.
  3. 부작용(side effects)을 가진 연산이나 메서드를 사용할 때는 주의합니다.
  4. 타입 변환 시 주의가 필요하며, 필요한 경우 명시적인 캐스팅을 사용합니다.
  5. 복잡한 표현식은 디버깅이 어려울 수 있으므로 적절히 분해하는 것이 좋습니다.

편히 모아진 글 보시려면 아래 위키독스 링크 >>
https://wikidocs.net/book/17111