심심한잉여의 잡동사니

JAVA - 반복문 본문

코딩일기/Java

JAVA - 반복문

심심한잉여 2021. 8. 12. 01:31
반응형

반복문과 분기문

반복문은 프로그램 수행 흐름을 바꾸는 역할을 하는 제어문 중 하나로 특정 문장들을 반복하여 실행핟록 함.

 

반복문은 크게 while문과 for문으로 나눠진다.


for문

for문은

for(int i = 0 ; i < 10 ; i++){

System.out.println("수행 될 문장");

}

 

위와 같은 코드처럼 작성을 하면 된다.
이렇게 작성을 한 경우
초기식인 i = 0 이다 라는 것을 확인 후
조건식인 i < 10 라는 것이 true 인지 확인

true 인 경우 안에 있는 수행 될 문장을 실행 후 증감식으로 이동하여 i++를 확인 후 i = 1 이라는 초기식으로 다시 진행한다.


false 인 경우 해당 반복문을 멈춘다.



중첩 반복문

for(int i = 0 ; i < 10 ; i++ ){

	System.out.println("수행 될 문장 1");

	for(int j = 0 ; j < 10 ; j++){
    
    	System.out.println("수행 될 문장 2");
    
    }
    
    System.out.println("수행 될 문장 3");

}

위와 같이 코드를 작성하며
for문 안에 for문을 넣어 중첩 시키는 것을 말한다.

위 코드와 같이 작성을 했을 시
첫 번째 for문이 실행되어

수행될 문장 1을 실행시킨 후 

두 번째 for문을 실행하여

수행 될 문장 2를 10번 반복한다.

그리고 수행될 문장 3을 실행시키는 것으로 첫 번째 for문이 완료된다.

결과값으로는
수행 될 문장 1
수행 될 문장 2 (* 10)
.
.

수행 될 문장 3

이렇게 짜인 코드를 10번 반복하게 되는 것이다.

고로 수행 될 문장 2 는 100번이 반복되며 중첩 되는 반복문은 이렇게 사용이 된다.


while 문 

while문은 for문보다 원시적인 반복문이며 이 때문에 좀 더 자유도가 높다.
특히 무한 루프가 필요 할 때 많이 이용한다.

int i = 0;

while(i < 10) {

	System.out.println("수행 될 문장");

	i++
}

위와 같이 작성을 하며 for문으로는 괄호 안에 전부 정리되어있었다면 while문은 분리가 되어 있는 느낌이 있다.
초기식은 위에 따로 선언해주며
증감식은 안에 따로 넣어줘야 하기 때문에 실수 할 확률이 높아보인다.

따라서 while문의 경우 무한루프를 줄 때 많이 사용한다.

while(true){
	System.out.println("무한으로 수행 될 문장")
}

위 코드와 같이 작성을 하며 저렇게 했을 시 무한루프가 진행된다.
무한루프는 아래에서 설명 할 분기문과 저번시간에 배운 if문을 활용하면 무궁무진한 사용성을 보여준다.
따라서 본인이 수업들었을 때에는 while문은 for문에 비해 자유도가 높은 원시적인 반복문이라는 결론이 나왔다. 


do ~ while 문 

do ~ while문의 경우 기존 반복문과 다르게 실행 될 문장부터 실행 후 조건식을 확인하는 반복문이다.

int i = 0;

do{

	System.out.println("수행 될 문장")

	i++;
}while(i > 10);

위 코드와 같이 작성을 하며 조건문은 바로 종료되게끔 작성을 하였다. 하지만 저렇게 작성을 하더라도
do{ } 안에 있는 수행 될 문장을 한번은 실행하고 종료된다.
따라서 이 코드는 한번은 수행이 필요한 작업에 실행이 되는 반복문이다.
하지만, 강사님께서는 해당 언어는 현업에서 많이 이용이 되지않는다고 하셨다.


분기문
분기문은 실행위치를 강제적으로 이동시키는 문장으로
조건문, 반복문과 더불어 제어문 중 1가지 이다.

break 와 continue 라는 구문이 있다.


break

break 는 반복문을 강제적으로 종료시키며 실행위치를 빠져나오게 하는 구문이다.

for(int i = 0 ; i < 10 ; i++){

	System.out.println("수행 될 문장");
    if(i==2){
    	break;
    }

}

위 코드와 같이 if문과 자주 사용을 하며 위 코드처럼 작성을 하게된다면 i==2라는 조건이 성립되면 강제적으로 반복문을 종료시킨다.
따라서 3번 수행될 문장을 실행시키고 종료가 되는 분기문이다.

이렇게 조건에 따라 조기종료시키게 된다면 불필요한 반복을 없애 for문이 실행되는 시간을 단축시킬 수 있게된다.


continue

continue는 반복문 내에서만 사용이 가능하며 반복문 실행 시 continue 아래 부분은 실행 하지 않고 다시 반복문의 증감식으로 실행위치를 바꿔주는 분기문이다.

for(int i = 0; i < 10 ; i++){
	
    if(i<10){
    	continue;
    }
	System.out.println("수행 될 문장");
    
}

위 코드와 같이 작성이 가능하며 조건문에 해당되면 continue를 실행 될 수 있도록 작성을 하였다.
따라서 i가 0~9로만 반복문이 실행된다는 것을 생각하면 continue가 계속해서 실행 될 것이며
아래에 있는 수행 될 문장은 실행되는 일이 없을 것이다.

왜? continue가 강제로 i++로 실행 위치를 바꾸기 때문이다.

 


실습 - 깃허브 : https://github.com/thyum3891/kh_java_study/commit/1a4c2ab6ae9228c07514483b224dd1463313c8d0

마치며

이렇게 5일차가 마무리 되었으며 아직까지는 수업이 쉬웠다.
과제는 하루에 10개정도씩 내주고 있으시기 때문에 블로그를 한번에 몰아서 해야하는 경우도 있다는 것이 다소 아쉬울 뿐.
오히려 이렇게 과제로 문법에 익숙해지고 있다는 느낌이 들고있어 너무 만족스러운 수업인 것 같다.

반응형

'코딩일기 > Java' 카테고리의 다른 글

JAVA - 2차원 배열  (0) 2021.08.16
JAVA - 1차원 배열  (0) 2021.08.12
JAVA - 조건문  (0) 2021.08.10
JAVA - 연산자의 종류와 우선순위  (0) 2021.08.04
JAVA - 변수 2  (0) 2021.08.04