[Java] 반복문_for문, while문

jeong·2021년 5월 13일
0

Java 자바

목록 보기
6/28
post-custom-banner

반복문_for문, while문

반복문 : 조건식에 의해 명령을 반복적으로 실행
for문은 반복의 횟수가 정해져 있는 경우,
while문은 반복의 횟수가 정해져 있지 않은 경우 사용

for문

반복의 횟수가 정해져 있는 경우 사용한다.

for문

for(초기화식; 조건식; 증감식) {
반복 실행될 명령(실행문)...;
}
//for() 안에는 반드시 ;를 두개 사용*
//초기식 및 증감식은 ,를 이용하여 여러 개 선언 가능

흐름 : 초기화식 > 조건식 > 명령/실행문 > 증감식 > 조건식 > 명령 > 증감식 > 조건식 > 명령...

//1부터 5까지 합을 구해보자 
int sum=0;
sum=sum+1;
sum=sum+2;
sum=sum+3;
sum=sum+4;
sum=sum+5;
System.out.println("1~5의 합:" +sum);
//=> 5개의 실행문, 1~100으로 늘어나면 실행문도 늘어난다 
//1~100까지의 합을 for문을 사용해서 구하기
for(int i=1; 1<=100; i++) {
	sum+=i;
} 
//=> 100번 반복

초기화식 : 조건식, 실행문, 증감식에서 사용할 변수를 초기화하는 역할을 한다. 초기화식은 생략가능

for(int i=0, j=100; i<=50 && j>=50; i++,j--){}
//-----초기화식-----/-----조건식------/--증감식--/
//초기화식에 사용된 변수는 for문에서만 사용할 수 있는 로컬 변수
//주의점 :
//초기화식에서 루프 카운터 변수를 선언할 때 float 타입을 사용하면 안된다. 
 int i=0; -> 루프 카운터변수 
 
// float i=0.1f; -> 실수인 float타입을 쓰면 정확하게 표현할 수 없다.
// ex) 10번 반복되어야 하는 루프가 9번 실행됨 

중첩for문

for 안에 다른 for문이 내포되어있다.

프로그램의 흐름 파악 => Debug 기능 사용

breakpoint 설정 => F11 => Debug 모드로 변환 =>F6 눌러 프로그램의 흐름 파악 => Debug 모드 프로그램의 흐름 종료 => Java 개발모드 변환 => breakpoint 제거
run -step over : F6


while문

반복의 횟수가 정해져 있지 않은 경우 사용한다.
while문은 조건식이 true인 경우 계속 반복하고, 조건식이 false가 되면 반복행위를 멈추고 while문을 종료한다.

while

while(조건식) {
...;
}

//while을 사용하여 1부터 10까지 출력하기
public class whileExample{
	public static void main(String[] args) {
    	int i=1; 
        while(i<=10) {
        	System.out.println(i);
            i++;
        }
    }
}  
//출력값 :	
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

//while문은 한 번 실행할 때 변수 i값을 출력하고 i를 1씩 증가시킨다. 
//조건문은 i가 10 이하일때까지 true가 되므로 while문은 총 10번을 반복 실행한다.

앞에 for문을 사용해 1~100 합을 구해보았다. 이번에는 같은 문제를 while을 사용해보겠다.

//1~100까지의 합을 while문을 사용해서 구하기

public class whileSumExample {
	public static void main(String[] args) {
    	int sum=0; //합계를 저장할 변수
        
        int i =1; //루프 카운터 변수
        
        while(i<=100) {
        	sum+=i;
            i++;
        }
        
        System.out.println("1~"+(i-1)+" 합 : "+sum);
    }
}

//출력값 : 
1~100: 5050

do-while

do-while은 while과 달리 블록 내부의 실행문을 우선 실행하고 실행 결과에 따라 반복 실행을 계속할지 결정한다.

do {
실행문;
} while(조건식);

실행 순서 : 1 실행문을 우선 실행
2 실행문 모두 실행되면 조건식 평가
3 조건식의 결과가 true면 '실행문 -> 조건식' 순서로 반복실행
4 조건식의 결과가 false면 do-while문을 종료함


break문

  • for문, while문, do-while문 내부에서 실행되면 반복을 취소한다.
//주사위 숫자 중 하나를 반복적으로 무작위로 뽑고, 숫자 6이 나오면 종료
//break 사용해서 while문 종료하기

public class BreakExample {
	public static void main(String[] args) {
    	while(true) {
          int num=(int)(Math.random()*6)+1;
          System.out.println(num);
          if(num==6) {
          	break;
          }        
        }
        System.out.println("프로그램 종료");
    }
}
//반복문이 중첩되어 있을 경우 break문은 가장 가까운 반복문만 종료한다. 
//중첩된 반복문까지 모두 종료시키려면 바깥쪽 반복문 앞에 이름(라벨)을 붙이고 break 이름;을 사용하면 된다. 

continue문

  • for문, while문, do-while문에서만 사용되고, 내부에서 실행되면 for문의 증감식 또는 while문, do-while문의 조건식으로 돌아간다.
  • break문과 마찬가지로 continue문도 대개 if문과 사용됨
  • 특정 조건을 만족하는 경우 continue문을 실행해서 그 이후의 문장을 실행하지 않고 다음 반복으로 넘어가게 한다.
//1~10 사이 숫자 중 짝수만 출력해보자 
public class ContinueExample {
	public static void main(String[] args) {
    	for(int i=1; i<=10; i++) {
        	if(i%2!=0) { //2로 나눈 나머지가 0이 아닐 경우 = 홀수일 경우
            	continue;
            }
            System.out.printlne(i); //홀수는 실행되지 않음 
        }
    }
}
//출력값 :
2
4
6
8
10
profile
배우는 초보개발자
post-custom-banner

0개의 댓글