제어문(조건문과 반복문)

2022. 5. 17. 15:44·개발/Java
반응형

백기선님이 과거에 진행했던 Java 스터디 4주차 스터디 입니다.

조건문

If

if문은 가장 기본적인 조건문이다. 크게 조건식과 괄호로 이루어진다.

만일(if) 조건식이 참(true)이면 괄호{ } 안의 문장들을 수행한다.

if (조건식) {
	//조건식이 true일 때 수행될 코드를 작성한다.
}

If - else

if문에 else블럭이 추가된 것이 if-else문이다. 

else의 뜻이 '그 밖의 다른'이므로 조건식의 결과가 참이 아닐 때, 즉 거짓일 때 else블럭의 문장을 수행하라는 뜻이다.

if (조건식) {
	//조건식이 true일 때 수행될 코드를 작성한다.
}
else {
	//조건식이 false일 때 수행될 코드를 작성한다.
}

if - else if 

첫 번째 조건식부터 순서대로 평가해서 결과가 참인 조건식을 만나면, 해당 블럭{} 만 수행하고 'if-else'문 전체를 벗어난다.

만일 결과가 참인 조건식이 하나도 없으면, 마지막에 있는 else블럭의 문장들이 수행된다. else 블럭 생략도 가능하다.

if (조건식1) {
	//조건식1이 true일 때 수행될 코드를 작성한다.
}
else if (조건식2) {
	//조건식2가 true일 때 수행될 코드를 작성한다.
}
else {
	//조건식이 false일 때 수행될 코드를 작성한다.
}

중첩 if문

if (조건식1){
	//조건식1의 연산결과가 true일 때 수행될 코드를 적는다.
	if (조건식2) {
    	//조건식2와 조건식1이 모두 true일 때 수행될 코드를 적는다
    }else {
    	//조건식1이 true이고, 조건식2가 false일 때 수행되는 코드=
    }
} else {
	//조건식1의 연산결과가 false일 때 수행될 코드
}

swtich 문

if문과 달리 switch문은 단 하나의 조건식으로 많은 경우의 수를 처리할 수 있다.

switch문은 조건식을 먼저 계산한 다음, 그 결과와 일치하는 case문으로 이동한다.

만일 조건식의 결과와 일치하는 case문이 없다면 default문으로 이동한다. deault문은 else 블럭과 비슷한 역할을 한다.

switch문의 순서는 아래와 같다.

  1. 조건식을 계산한다.
  2. 조건식의 결과와 위치하는 case문으로 이동한다.
  3. 이후의 문장들을 수행한다.
  4. break문이나 switch문의 끝을 만나면 switch문 전체를 빠져나간다.

switch문의 제약 조건은 아래와 같다.

  1. switch문의 조건식 결과는 정수 또는 문자열이어야 한다.
  2. case문의 값은 정수 상수만 가능하며, 중복되지 않아야 한다.
int level = 1;

switch (level){
	case 1 : 
            System.out.println("level is 1.");
            break;
        case 2 : 
            System.out.println("level is 2.");
            break;
        case 3 : 
            System.out.println("level is 3.");
            break;
        default : 
            System.out.println("Another level.");

}

반복문 

for문

for문의 구조는 아래와 같다.

for (초기화; 조건식; 증감식){
	//조건식이 참일 때 수행될 문장들을 적는다.
}
  1. 제일 먼저 초기화를 진행한다.
  2. 초기화를 진행하고 조건식이 참이라면,
  3. for문 내부 코드들을 수행하고, 거짓이라면 for문을 벗어난다.
  4. 코드들을 수행했다면, 증감식을 진행하고,
  5. 다시 조건식을 연산하는데, 참이면 for문 내부 코드들을 수행한다.
  6. 조건식이 거짓일 때 까지, 이 작업을 반복한다.

for문 순서

예시 코드는 아래와 같다.

for (int i = 1; i<=5 ; i++ ){
	System.out.println("Hello, Java");
}

출력된 결과
Hello, Java
Hello, Java
Hello, Java
Hello, Java
Hello, Java

while문

while문의 구조는 아래와 같다.

조건식과 블럭으로 이루어져 있다. 조건식이 true일 때, 블럭 내부의 코드를 반복한다.

조건식이 false면, while문을 벗어난다.

while(조건식) {
	//조건식이 참일 때 반복할 코드
}

아래는 예시코드다.

int i = 1;
while(i <= 5 ){
	System.out.println("Hello, Java.");
	i++;
}

출력 결과
Hello, Java.
Hello, Java.
Hello, Java.
Hello, Java.
Hello, Java.

do-while문

do-while문은 while문의 변형으로 최소한 한 번은 수행될 것을 보장한다.

while문과 반대로 블럭 {}을 먼저 수행한 후에 조건식을 평가한다.

구조는 아래와 같다.

do {
	//조건식의 연산결과가 참일 때 수행될 문장들을 적는다.
} while (조건식)

break문

switch문에서 벗어나기 위해 break문을 사용했다.

반복문에서도 break문을 사용할 수 있는데, switch문에서 그랬던 것처럼,

break문은 자신이 포함된 가장 가까운 반복문을 벗어난다.

아래는 예시코드다.

int sum = 0;
for(int i = 0; i < 100 ; i++){
	if(sum > 100) break;
	sum += i;
}

출력 값
105

continue문 

continu문은 반복문 내에서만 사용할 수 있고,

반복이 진행되는 도중에 continue문을 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어간다.

for문의 경우에는 증감식으로 이동하며, while문과 do-while문의 경우 조건식으로 이동한다.

for(int i = 0; i <= 10; i ++){
	if (i%3==0) continue;
    System.out.println(i);
}

출력결과
1
2
4
5
7
8
10

 

이상으로 포스팅을 마칩니다.

 

참고자료

자바의 정석 chapter 4. 조건문과 반복문 (저자 : 남궁성)

http://www.tcpschool.com/c/c_control_loop

 

반응형
'개발/Java' 카테고리의 다른 글
  • Java Class
  • JUnit 5 기초 학습과 Stack, 큐 구현 및 테스트
  • 자바 연산자 (Operator)
  • 자바 데이터 타입, 변수 그리고 배열
Debin
Debin
공부 기록을 남기며 게시글 리팩토링을 진행하는 블로그입니다.
  • Debin
    리팩토링하는 블로그
    Debin
  • 전체
    오늘
    어제
    • 분류 전체보기
      • DB
        • DB 기초
        • MySQL
        • SQL 튜닝
      • OS
      • Network
      • Git
      • 디지털콘텐츠기획
      • 소프트웨어공학
      • 코딩테스트
        • 프로그래머스
        • 백준
        • 인프런
      • 공부 일지
      • 독서
        • 클린코드
        • 일상 속 사물이 알려주는 웹 API 디자인
        • 토비의 스프링
        • 객체지향의 사실과 오해
        • 자바 잘 읽는 법
      • 기록 및 회고
      • Cloud
        • AWS
      • 개발
        • Java
        • Spring Core
        • Spring MVC
        • Spring DB
        • Spring Boot
        • Spring Security
        • Spring Batch
        • JPA
        • Test
        • Android
      • 대외활동
        • UMC SERVER
        • 카엔프 SW 아카데미
      • 프로젝트
      • Docker
      • Gradle
      • ELK
      • 실무 이야기
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

    • 본인 깃허브입니다!
  • 인기 글

  • 태그

    AWS
    docker
    운영체제
    자바
    인덱스
    토비의 스프링
    spring boot
    redis
    리눅스
    innodb
    컨테이너
    mysql
    코딩 #개발자 #노마드북클럽 #노개북
    객체
    스프링
    프록시
    Java
    spring mvc
    스프링 부트
    test
    ORM
    도커
    객체지향
    JPA
    데이터베이스
    SQL
    트랜잭션
    container
    AOP
    spring
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
Debin
제어문(조건문과 반복문)
상단으로

티스토리툴바