6. 자바(java) : 제어문(Control Statement) 간단 정리

2024. 3. 28. 14:55·JAVA

6. 제어문(Control Statement)

1) 조건문

결과로 true / false를 돌려주는 구문

(1) if문

결과의 true, false 여부에 따라 실행문 결정, true면 {} 실행 후 빠져나감 ⇒ 실행 하거나 안하거나

if(조건식) {}

  • 조건식에 올 수 있는 요소
    • ture / false 값을 산출하는 연산식
    • boolean 타입 변수
  • {}안에 변수선언, 기능호출, 연산자, 조건문, 반복문 사용 가능
    • 중괄호{}가 없어도 실행은 되지만 없으면 헷갈리므로 생략하지 않는 것을 권장

(2) if-else문

if(조건식) {} else {}

  • true면 if문 블록 실행, false면 else 블록 실행 ⇒ 무조건 실행
  • true 블록에는 return;

(3) if-else if-else문

조건식이 여러개인 if문, 갯수 제한 없음

마지막 else는 써도 되고 안써도 된다

  • 없으면 해당 없을 경우 그냥 넘어감
  • 있으면 무조건 하나는 실행되는 코드가 됨

if(조건식1) {} else if(조건식2) {} else{}

(4) switch문(변수)

조건식 하나로 많은 경우의 수를 처리할 때 사용하고, 범위는 적용 불가

  • 메뉴 기능 설정시 많이 사용함
  • 코드가 길면 구분이 어려워서 잘 안씀

변수나 연산결과는 int, char, string 타입만 가능

  • 변수의 값에 따라 실행문 결정, 같은 기능인 if문 보다 코드가 간결
  • case 값에는 변수 타입에 맞는 literal이 와야함
switch(변수명) {
case 값1: 실행문 
break; 
default: 실행문;}

//아래와 같이 중복 case 설정도 가능하다
case 1: case 2: case 12: System.out.print("겨울");break;
  • default: 아무것도 해당되지 않을 때의 실행문(생략 가능). =else
  • 만약 실행문이 없다면 다음 실행문이 실행됨
  • break;: switch문을 바로 빠져나가는 기능(필수)
    • 없으면 선택한 케이스 이후의 모든 실행문이 실행됨
    • default에는 없어도 됨

 

2) 반복문

: 제어문 처음으로 되돌아가 반복실행(루핑) : 어떤 작업을 반복적으로 실행하고 싶을 때 사용

(1) for문

: 반복 횟수를 알고 있을 때 주로 사용

  • for(초기화식; 조건식; 증감식){실행문;}
    • 초기화식에서 변수 선언 → 반복 횟수를 계산할 메모리 공간을 할당(반복횟수 저장)
    • 조건식: 코드를 실행할지 결정하는 조건
      • 일반적으로 초기화식에 사용한 변수를 재사용함
      • 조건식이 false가 나오면 for문이 실행되지 않고 종료됨
    • 증감식: 초기화식에 선언된 변수의 값을 수정하는 연산 → 조건식의 결과를 변경시킴
    • 조건식이 true면 실행 → 실행문이 증감식에 반영 → 반영된 내용으로 조건식 확인 → 실행 여부를 결정함 → 조건식이 f면 중지
    • 실행문 내에는 변수 선언, 연산자, 조건문, 기능호출 등 모두 가능
      • 누적 연산은 불가능하므로 실행문 밖에 선언해야 함 = 별도의 누적 연산 메모리 공간을 만들면 for문에서도 접근이 가능함
for(int i = 1; i <= 10; i++) {
	System.out.println(i + "출력") //1~10 출력
};
  • 초기화식, 조건식, 증감식을 꼭 다 쓰지 않아도 됨

장점:

  • 초기화, 조건체크, 반복 후의 작업을 한 줄에서 처리할 수 있어 간편
  • 정해진 횟수만큼 반복에 용이
  • for 루프 블록에서만 루프 변수 사용하므로 다른 곳에서 해당 변수로 실수할 가능성이 낮다

단점:

  • 루프 조건이 내부에서 변경되는 경우
  • 복잡한 조건식은 while문이 더 나음

(2) 중첩 for문

: 반복적인 확인 작업할 때 주로 사용

for(초기값1; 조건식1; 증감식1) {
	수행될 문장1;
	for(초기값2; 조건식2; 증감식2) {
		수행될 문장2;
	}
	수행될 문장3;
}

: for문에 진입하면 수행될 문장1을 먼저 수행하고, 두 번째 for문에 진입하면 조건식2가 false가 될 때까지 수행될 문장2를 수행,
나오면 수행될 문장3을 수행하고 조건식1로 돌아와 true면 다시 반복

  • 별찍기 활용 예시
 ****
 ****
 ****			
for(int i = 0; i < 4; i++) { //행 담당
	for(int j = 0; j < 4; j++) { //열 담당
		System.out.print("*"); //1줄에 4개씩 출력
	}
	System.out.println();//1행마다 1번씩 개행
}

 *
 **
 ***
 ****				
			
for(int j = 0; j < 6; j++) {
	for(int k = 0; k < j; k++) {
		System.out.print("*");
	} System.out.println();
}

(3) while문

: 조건에 따라 반복 및 중지할 때 사용

(조건식 true면 계속 반복, false면 반복 종료)

  • 특정 조건에서 반복을 중지하는 로직에서 많이 사용
    • 예) 사용자가 끝 입력까지 반복, 메뉴 출력 등
  • 의도적인 무한루프 발생시킬 때 사용
  • 예시
int i = 1; //초기식 역할
do {
System.out.println(i + "출력");
i++;
} while(i <= 10){
로직생략
}; //;세미콜론 필수
  • while(조건식) {실행문; [증감식 / 분기문];}
  • 예시
int i = 1; //초기식 역할
while(i <= 10) {
	System.out.println(i + "출력");
	i++;
}
  • 조건식에는 주로 **비교(++,<, !+ 등) 혹은 논리 연산식(&&, ::등)**이 옴
  • 실행문에서 조건식을 변화시키는 내용 추가 필요

장점:

  • 루프 내부에서 변경되는 경우, 관리가 쉽다
  • 더 복잡한 조건과 시나리오에 강함
  • 종료시점을 명확하게 알 수 없는 경우 용이

단점:

  • 초기화, 조건체크, 반복 후의 작업이 분산되어 직관성이 떨어짐
  • 루프 변수가 while 바깥까지 스코프(범위)임

(4) do-while문

: while문과 유사하지만 일단 최초 한번은 코드 블럭을 실행하고나서 while 조건을 검사함

  • do {실행문; [증감식 / 분기문]} while(조건식);
    • ; 세미콜론 까먹지 말 것
  • 일단 실행 후 조건식을 검사, false면 탈출, true면 재실행 및 루핑
    • 조건이 true가 아니어도 무조건 한 번 이상 실행

3) 분기문

조건문과 같이 쓰인다.

의도적으로 무한루프를 만들어 놓은 뒤에 사용할 수도 있다.

(1) break문

  • for, while, do-while, switch문의 실행을 중지할 때 사용
  • 주로 if문과 함께 조건 만족시 빠져나가는 형태로 사용
  • ❗반복문이 중첩되어 있다면, Label을 이용해서 전체 탈출 가능
    • Lable: for(){ for(){break Label;}}
    • Lable 이름은 자유롭게 변경 가능
for(int i = 1;; i++) {
	System.out.println(i + "출력:);

	if( >= 10) {
		break; //for문 자체를 빠져나감
	}
}
t: //라벨기능
for(int i = 2; i < 10; i++) {
	for(int j = 1; j < 10; j++) {
		System.out.println(i + " + " + j + " = " + (i+j));
		if(j == 5) {
			break t; //t라벨을 모두 벗어남
		}
	}
	System.out.println();
	if(i == 5) {
		break; //5단 까지만 출력
	}
}

(2) continue문

반복문 내에서만 사용 가능

전체 반복 중에 특정 조건을 만족하는 경우 실행을 제외하고자 할 때 유용

예) i = 5일 때의 실행문 실행 건너띄기

  • for문의 증감식이나 while, do-while의 조건식으로 이동하게 됨
    • 그 아래는 실행을 안하고 건너 띄게 됨
  • 주로 if문과 함께 사용, 조건에 맞으면 계속 진행하라는 의미
for(int i = 1; i <= 10; i++) { 
	if(i % 2 == 0) {
		continue; 
	}
System.out.println(i + " 출력"); //출력되지 않고 i++로 이동
}
반응형

'JAVA' 카테고리의 다른 글

8. 자바(java) : 객체(Object), 객체 지향 개념 정리  (0) 2024.04.01
7. 자바(java) : 배열(Array) [] 간단 정리  (0) 2024.03.28
5. 자바(java) : 연산자(Operator) 간단 정리  (2) 2024.03.27
4. 자바(java) : 형변환(casting) 간단 정리  (0) 2024.03.27
3. 자바(java) : 변수(Variable) 간단 정리  (0) 2024.03.26
'JAVA' 카테고리의 다른 글
  • 8. 자바(java) : 객체(Object), 객체 지향 개념 정리
  • 7. 자바(java) : 배열(Array) [] 간단 정리
  • 5. 자바(java) : 연산자(Operator) 간단 정리
  • 4. 자바(java) : 형변환(casting) 간단 정리
JinHyung-dev
JinHyung-dev
틈틈이 기록하고 있습니다!!
  • JinHyung-dev
    JinHyung's 블로그
    JinHyung-dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (34)
      • JAVA (18)
      • Oracle DataBase (12)
      • 프리코스 (4)
  • 인기 글

  • 반응형
  • 최근 댓글

  • 최근 글

  • 태그

    Java
    백엔드
    요약
    개발자
    공부
    oracle
    자바
    정리
    SQL
    DB
  • hELLO· Designed By정상우.v4.10.0
JinHyung-dev
6. 자바(java) : 제어문(Control Statement) 간단 정리
상단으로

티스토리툴바