[Java] 조건문, 반복문

thingzoo·2023년 6월 13일
0

Java

목록 보기
6/20
post-thumbnail

조건문

if문

특정 조건에 따라 다른 연산을 수행하고 싶을때 사용하는 문맥

  • 조건이 참인 경우 연산을 수행
  • 조건이 거짓인 경우 다음 조건 확인
  • 조건이 여러개인경우 위 과정 반복
  • 모든 조건이 거짓인 경우 else문 연산 수행
if(조건1) { 
	연산 
} else if (조건2) {
	연산2
} else if (조건3) {
	연산3
} ...
} else {
	연산n
}
// 조건문
int number = 2;

if (number == 1) {
	System.out.println("number 값은 1 입니다."); // 미출력
} else if (number == 2) {
	System.out.println("number 값은 2 입니다."); // number 값은 2 입니다. 출력
} else {
	System.out.println("number 값은 모르는 값입니다."); // 미출력
}
// 중첩 조건문
boolean flag = true;
int number = 2;

if (flag) {
	if (number == 1) {
		 System.out.println("flag 값은 true, number 값은 1 입니다."); // 미출력
  } else if (number == 2) {
		 System.out.println("flag 값은 true, number 값은 2 입니다."); // flag 값은 true, number 값은 2 입니다. 출력
	}
} else {
	if (number == 1) {
		 System.out.println("flag 값은 false, number 값은 1 입니다."); // 미출력
  } else if (number == 2) {
		 System.out.println("flag 값은 false, number 값은 2 입니다."); // 미출력
	}
}

switch문

  • switch(피연산자) { case(조건): (연산) }
  • switch 피연산자case 조건을 만족하면 case: 뒤에 명시되어 있는 연산 수행
  • case(조건): (연산) 은 여러개를 설정 가능
    • 각 case 의 연산문 마지막에는 break;을 넣어줘야 switch 문을 종료시킴
    • break; 를 안넣어주면 switch 문 블럭이 끝날때 까지 전부 실행
  • switch문 중괄호 안의 제일 마지막에 default: (연산) 을 명시해주면 case 조건들이 모두 만족하지 않을때 수행할 연산을 정할수있음 (생략가능)
// switch/case 문 

int month = 8;
String monthString = "";
switch (month) {
    case 1:  monthString = "1월";
             break;
    case 2:  monthString = "2월";
             break;
    case 3:  monthString = "3월";
             break;
    case 4:  monthString = "4월";
             break;
    case 5:  monthString = "5월";
             break;
    case 6:  monthString = "6월";
             break;
    case 7:  monthString = "7월";
             break;
    case 8:  monthString = "8월"; 
             break;
    case 9:  monthString = "9월";
             break;
    case 10: monthString = "10월";
             break;
    case 11: monthString = "11월";
             break;
    case 12: monthString = "12월";
             break;
    default: monthString = "알수 없음";
}
System.out.println(monthString); // 8월 출력

if문 vs switch문

  • 차이점1. 복합조건
    • if 문: 괄호()안에 조건 여러 조건문 수행 가능
    • switch 문: 피연산자 한개에 대한 조건만 지원
  • 차이점2. 코드중복
    • if 문: 상대적으로 코드중복이 많음
    • switch 문: 코드중복이 적음

반복문

for문

특정 조건에 따라 연산을 반복해서 수행하고 싶을때 사용하는 문맥

  • for (초기값; 조건문; 증가연산) { (연산) }
  • 특정 조건은 초기값조건문을 통해서 정의
  • 반복할때마다 값을 증가 시키려면 증가연산 정의
  • 초기값조건문을 만족할때까지 (연산)을 수행하면서 회차마다 증가연산 수행
// for 문
for(int i=0; i < 4; i++) { // 변수 i 값은 0 ~ 3 까지 반복
    System.out.println(i + "번째 출력"); // i 변수와 문자열 합치기
}

향상된 for문

for 소괄호 안에 값이 3개나 들어가기 때문에 이걸 2개로 줄여주는 방법

  • for (변수 타입 변수 명 : 목록변수) { (연산) }
// 향상된 for 문
int[] numbers = {3,6,9,12,15};
for(int number: numbers) {
    System.out.print(number + " "); 
}

while문

특정 조건에 따라 연산을 반복해서 수행하고 싶을때 사용하는 문맥
다만, 초기값 없이 조건문만 명시하여 반복

  • while(조건문) { (연산) }
    • 조건문을 만족해야만 연산 반복수행
    • 한번 반복할때마다 조건문을 체크해서 조건문이 거짓이면 반복 중단
// while 문
int number = 0;
while(number < 3) {
		number++;
    System.out.println(number + "출력"); 
}

do-while문

  • do { (연산) } while(조건문)
    • 최초 1회 연산수행 후 조건문 체크
    • 나머지 while문과 동일
// do-while 문
int number = 4;
do {
    System.out.println(number + "출력"); 
} while(number < 3); // 연산을 한번 수행 후 조건문 체크

break 명령

명령을 호출하면 가장 가까운 블럭의 반복문(또는 switch) 중단시킴

// break 명령
int number = 0;
while(number < 3) {
		number++;
		if (number == 2) {
			break;  // 2일때 반복 중단
		}
    System.out.println(number + "출력"); 
}

중첩 반복문 탈출

라벨 사용

Loop1 :
for(int i=0; i<n; i++){
   Loop2 :
   for(int j=0; j<n; j++){
      System.out.println("i="+i + " j="+j);
      if (j==1){
         break Loop1;     // end of Loop1(i)
         //break;         // end of Loop2(j)
         //break Loop2;   // end of Loop2(j)
      }
   }
}

continue 명령

반복문에서 해당 순서를 패스하고 싶을때 사용

// continue 명령

int number = 0;
while(number < 3) {
		number++;
		if (number == 2) {
			continue;  // 2일때 반복 패스
		}
    System.out.println(number + "출력"); 
}

Reference

🔗 스파르타코딩클럽 Java 문법 종합반

profile
공부한 내용은 바로바로 기록하자!

0개의 댓글