20230221 [Java] for each문과 switch-case문

Daisy🌷·2023년 2월 21일
0

< 1. for each문 >

for (type var: iterate) {
    body-of-loop
}
- iterate : 루프를 돌릴 객체
  • iterate 객체에서 한개씩 순차적으로 var에 대입되어 for문이 수행된다. iterate로 사용할 수 있는 자료형은 루프를 돌릴 수 있는 자료형(배열 및 ArrayList 등)만 가능하다.
  • for each문은 따로 반복회수를 명시적으로 주는 것이 불가능하다.
  • 1스탭씩 순차적으로 반복할 때만 사용가능하다는 제약이 있다.

for문으로 배열의 값 순차적으로 출력하기

String[] numbers = {"one", "two", "three"};
for(int i=0; i<numbers.length; i++) {
    System.out.println(numbers[i]);
}

for each문으로 배열의 값 순차적으로 출력하기

String[] numbers = {"one", "two", "three"};
for(String number: numbers) {
    System.out.println(number);
}

< 2. switch-case문 >

  • if문과 비슷하지만 좀 더 정형화된 조건 판단문이다.
  • 입력값이 정형화되어 있는 경우 if문 보다는 switch/case문을 쓰는 것이 가독성에서 좀 더 유리하다.

기존 switch문

  • 분기하기 위해 case 문장에 고정된 값을 지정하고 여기에 맞는 코드를 작성한다.
  • break 문장의 위험성과 중복된 case 조건의 복잡성을 보여준다.
  • 하나의 case에는 오직 하나의 조건만이 들어가기 때문에 여러 조건에 걸쳐 처리를 하기 위해서는 break 문장을 이용해서 코드를 작성해야 한다.
switch(currentOperator){
                    case "":
                        accumulator = currentNumber;
                        break;
                    case "+":
                        accumulator += currentNumber;
                        break;
                    case "-":
                        accumulator -= currentNumber;
                        break;
                    case "*":
                        accumulator *= currentNumber;
                        break;
                    case "/":
                        accumulator /= currentNumber;
                        break;
                }

최신 Modern Java switch문

  • 여러 개의 조건에 따라 값을 처리하고 결과를 리턴할 수 있도록 개선되었다.
  • 새로운 switch 문장은 하나의 case 문장에 여러 개의 조건을 담을 수 있다.
  • 여러개의 조건을 ","를 이용해서 기술할 수도 있고 코드의 가독성 역시 매우 좋아진다.
  • 주의할 점은 새로운 switch 표현식에는 break를 사용할 수 없으며 사용할 경우 컴파일 에러가 발생한다.
switch (currentOperator) {
                    case "" -> accumulator = currentNumber;
                    case "+" -> accumulator += currentNumber;
                    case "-" -> accumulator -= currentNumber;
                    case "*" -> accumulator *= currentNumber;
                    case "/" -> accumulator /= currentNumber;
                }
profile
티스토리로 블로그를 이전했습니다. 😂 구경 오세요! 👉🏻 https://u-ryu-logs.tistory.com

0개의 댓글