03_Control

김정욱·2022년 12월 8일
0

JAVA 복습

목록 보기
2/15
post-thumbnail
post-custom-banner

<제어문>

1. 조건문

1) 정의

  • 조건에 따라 다른 문장이 수행.

2-1) if 문

  • if, else if, else 로 구성된 조건문
  • 조건식 값이 true면 내부 코드가 수행된다.
<if>
if(조건식){					
	수행될 코드			
}						
------------------------------------------------------------------
if(num > 0){
	System.out,println("양수입니다");
}
<if ~ else>
if(조건식){ 					
	true일 때 수행될 코드			
} else { 					
	false일 때 수행될 코드
}
------------------------------------------------------------------
if(num % 2 == 0){
	System.out,println("짝수 입니다.");
} else {
	System.out,println("홀수 입니다");
}    
<if ~ else if ~ else>
if(조건식1) {
	조건식1 true일 때 수행
} else if(조건식2){
	조건식2 true일 때 수행
} else {
	모두 false 일 때 수행
}
------------------------------------------------------------------
if(month == 1 || month == 2 || month == 12) {
	season = "겨울";
} else if(month >= 3 && month <= 5) {
	season = "봄";
} else if(month >= 6 && month <= 8) {
	season = "여름";
} else if(month >= 9 && month <= 11) {
	season = "가을";
} else {
	season = "해당하는 계절이 없습니다.";
}
<중첩 if>
if (조건식1) {
   if (조건식2) {
      if (조건식3) {
         수행될 코드;
      } else if (조건식4) {
         수행될 코드;
      } else {
         수행될 코드;
      }
   } else {
      수행될 코드;
   }
} else if (조건식5) {
   수행될 코드;
} else {
   수행될 코드;
}
------------------------------------------------------------------
if (month == 1 || month == 2 || month == 12) {
	season = "겨울";
	if(temperature <= -15) {
		season += " 한파 경보";
	} else if(temperature <= -12) {
		season += " 한파 주의보";
	}
} else if (month >= 3 && month <= 5) {
	season = "봄";
} else if (month >= 6 && month <= 8) {
	season = "여름";
	if(temperature >= 35) {
		season += " 폭염 경보";
	} else if(temperature >= 33) {
		season += " 폭염 주의보";
	}
} else if (month >= 9 && month <= 11) {
	season = "가을";
} else {
	season = "해당하는 계절이 없습니다.";
}

👉 Tip

  • 가독성을 위해 하위 코드들은 들여쓰기 또한 관련이 있는 코드끼리 붙여쓰고 한줄 띄우고 다른 코드 작성하기.

2-2) switch문

  • 조건식의 결과값이 일치하는 case문으로 이동.
  • 조건식 안에는 정수값이 배치되어야 함. int 타입의 변수 혹은 int 타입의 값을 반환하는 함수여도 무관. 문자형태도 가능.
switch(조건식) {
case 조건식 결과1 : 수행될 코드; break;
case 조건식 결과2 : 수행될 코드; break;
default : 수행될 코드;
}
------------------------------------------------------------------
switch(num % 5) {
case 1 : team = "1조"; break;
case 2 : team = "2조"; break;
case 3 : team = "3조"; break;
case 4 : team = "4조"; break;
default : team = "다시";
}

👉 Tip

  • 대문자로 된 약어 혹은 고유명사여도 변수에서는 소문자로 쓰자.
  • 조건문에서 각 조건에 따라 출력을 하지말고, 상위에 변수 하나 선언 후 변수에 값을 저장하는 형태로 하여 최종으로 출력하도록 하자.

2. 반복문

1) 정의

  • 특정문장들을 반복 수행.

2-1) for문

  • 반복횟수가 정해진 반복일 때 주로 사용
  • 반복 여부를 결정하는 조건식이 처음에 제시되므로 한번도 실행이 안될수도 있음
<for>
for(초기식; 조건식; 증감식) {
	수행될 코드;
}
------------------------------------------------------------------
for(int i = 1; i <= 10; i++) {
	System.out.println(i + “ 출력");
}

=> 조건식인 i변수가 1부터 시작하여 증감식에 의해 1씩 증가, i가 11이되는 순간 조건식의 결과값이 false로 바뀌고, 반복문 탈출.

<중첩 for>
for(초기값1; 조건식1; 증감식1) {
	수행될 코드1;
	for(초기값2; 조건식2; 증감식2) {
		수행될 코드2;
	}
	수행될 코드3;
}

=>
① for문에 들어가면 수행될 코드1 실행
② 두번째 for문으로 진입 두번째 for문의 조건식이 거짓이 될때까지 코드2 반복 수행 후 탈출
③ 코드3 시행
④ 첫번째 for문의 증감식 수행. 그 후 위의 과정 반복.

2-2) while문

  • 반복 횟수가 정해지지 않은 반복일 때 주로 사용
  • 반복 여부를 결정하는 조건식이 처음에 제시되므로 한번도 실행이 안될수도 있음
  • 조건식이 false가 될 때까지 반복 수행.
  • {}안에 조건을 벗어나게 할 연산(증감식, 분기문) 필요
while(조건식) {
	수행될 코드;
	[증감식 or 분기문];
}
------------------------------------------------------------------
int i = 1;
while(i <= 10) {
	System.out.println(i + " 출력");
	i++;
}

2-3) do ~ while문

  • 반복 횟수가 정해지지 않은 반복일 때 주로 사용
  • 반복 여부를 결정짓는 조건식이 아래에 제시되므로, 무조건 한번은 실행됨.
  • 조건식이 false가 될 때까지 반복 수행.
  • {}안에 조건을 벗어나게 할 연산(증감식, 분기문) 필요
do {
	수행될 코드;
	[증감식 or 분기문];
} while(조건식);
------------------------------------------------------------------
int i = 1;
do {
	System.out.println(i + "출력");
	i++;
} while(i <= 10);

=>
① 수행될 코드인 출력이 한번 시행되고, 증감수행.
② 조건식 확인
③ true면 코드 실행, false면 탈출.

3. 분기문

1) break

  • 반복문에서 break를 만나면 반복문 탈출
for(int i = 1;; i++) {
	System.out.println(i + " 출력");
    if(i >= 10) {
		break;
	}
}

=>
① for문 중에 조건식이 비었음 -> 무한루프
② 변수 i가 증감식에 의해 1씩 증가.
③ i가 10이되는 순간 조건식인 if문 조건 충족하여 if문 안의 코드 수행
④ break를 만나며 반복문 탈출

  • 중첩 반복문에서의 break
    for(초기값1; 조건식1; 증감식1) {
    	수행될 코드1;
    	for(초기값2; 조건식2; 증감식2) {
    		수행될 코드2;
    		break;
    	}
    	수행될 코드3;
    }

=>
① 코드1 수행 후 두번째 반복문 진입.
② 두번째 반복문 안에서 break 만나서 실행.
③ 반복문을 탈출하는데 두번째 반복문 안에 있었으므로 두번째 반복문 탈출
④ 코드3 수행

2) continue

  • continue를 만나면 밑의 코드들을 수행하지 않고 반복을 다시 시행
  • for문의 경우 증감식으로, while(do~while)문의 경우 조건식으로 이동
  • 전체 반복 중 특정 조건을 만족하는 경우를 제외할 때 유용
for(int i = 1; i <= 10; i++) {
	if(i % 2 == 0) {
		continue;
	}
	System.out.println(i + " 출력");
}

=>
① 변수 i가 1로 시작. 조건문 만나서 조건식 수행. false 이므로 if문 실행 X
② 출력 실행 후 증감식에 의해 i 값 1 증가
③ 조건문 시행. 참이므로 if문 안의 수행코드 시행. continue 만남.
④ 출력 코드를 수행하지 않고 조건식으로 넘어감
⑤ 결과적으로 홀수만 출력됨

profile
절박한 마음을 갖고 하루를 보내자!!
post-custom-banner

0개의 댓글