본문 바로가기
프로그래밍 공부 정리/java

반복문: while문, do while문,for each반복문

by 메기사랑 2021. 10. 17.

while 문의 형식

초기값

while(조건식){

반복실행시킬 명령어(들)

증감식

}

do while 문의 형식

초기값;

do{

반복 수행할 명령어(들);

증감식;

}while(조건식);

while과 do~while의 차이

while문과 do~while문은 사용하는 방법이 유사합니다.

둘의 차이점은 만약에 처음부터 조건을 만족하지 않은 상황이라면 while문은 반복문을 한번도 실행하지 않을 수 있지만 조건을 나중에 비교하는 do~while은 어찌되었던 do문을 적어도 한번은 실행하는 것입니다.

 

int i=100;

while(i<=3){

System.out.println("hello");

i++;

}

 

위의 코드는 처음부터 조건을 만족하지 않은 값으로 초기화 되어 있으므로 반복문을 한번도 동작하지 않습니다.

 

그러나 다음은

int i=100;

do{

System.out.println("hello");

i++;

}while(i<=3);

 

위의 코드는 처음부터 조건을 만족하지 않은 값으로 초기화 되어 있으나 조건을 나중에 가서 판별하므로 어찌 되었던 do문을 한번은 실행합니다.

 

여기서 질문!

 

반복문이 세가지(for,while,do~while)나 있는데 어떨때 어떤것을 사용하는 것이 좋은가요?

 

반드시 이럴때는 이것을 써요! 라고 정해진 것은 없습니다. 자유롭게 아무거나 써도 좋습니다.

그러나 일반적으로 반복실행 해야할 횟수 딱 정해진 경우는 for를 많이 씁니다.

사용자의 입력값(혹은 조건이) 만족할 동안 계속해서 동작해야 하는 경우에는 while 이나 do~while문을 사용하는 것이 좋겠습니다.

 

그리고 일단 한번은 동작해야 하는 경우라면 do~while문을 이용하는 것이 좋겠습니다.

 

반복문을 이용하여 제대로 된 값을 입력할 때 까지 입력 받기(for, while, do while)

for(;;){ 

System.out.print("월을 입력하세요==>");

month = sc.nextInt();

if( month >=1 && month <= 12 ){

break;

}

}



while(true){

System.out.print("월을 입력하세요==>");

month = sc.nextInt();

if( month >=1 && month <= 12 ){

break;

}

} 



do{

System.out.print("월을 입력하세요==>");

month = sc.nextInt();

if( month >=1 && month <= 12 ){

break;

}

}while(true);

 

 

배열의 요소 만큼 반복 실행하기

int []data = {10,20,30,40,50};

위와 같은 배열의 요소만큼 반복 실행하기 위해서는 다음과같이 반복문을 사용합니다.

 

for(int i=0; i<data.length; i++){

System.out.println(data[i]);

}



 int i=0;

while(i<data.length){

System.out.println(data[i]);

i++;

} 



int i=0;

do{

System.out.println(data[i]);

i++;

}while(i<data.length);

 

위와같은 반복문(for,while,do~while)을 사용하여 배열의 인덱스 만큼 증가시켜 배열의 요소에 접근할 수 있습니다.

그런데, 자바에서 배열의 요소만큼 반복 실행하기 위한 향상된 반복문(for-each)을 제공합니다.

for-each 반복문은 배열의 요소만큼 반복 실행시키기 위하여 사용하며 사용하는 방법은 다음과 같습니다.

 

 for each 반복문의 형식

for( 자료형 변수명 : 배열이름 ){

반복실행시킬 명령어(들)

}

 

for 괄호안에 콜론(:)이 오고 콜론 오른쪽에는 배열이름을 써 줍니다.

콜론 왼쪽에 배열의 요소를 하나씩 꺼집어 내어올 변수이름을 자료형과 함께 써줍니다.

즉, 배열의요소를 차례로 꺼내와서 변수에 담기게 됩니다.

하나씩 꺼집어 내어와서 담을 변수의 자료형은 배열의 자료형과 일치되게 써야 합니다.

int []kor = {10,20,30,40,50};

위의 배열의 요소만큼 반복 실행시키는 명령을 for each로 표현한다면 다음과 같이 합니다.

 

for( int v : kor){

System.out.print( ) ;

}

'프로그래밍 공부 정리 > java' 카테고리의 다른 글

참조자료형, 메소드,return  (0) 2021.10.19
다차원 배열  (0) 2021.10.18
Break와 Continue  (0) 2021.10.16
배열  (0) 2021.10.15
반복문: for문  (0) 2021.10.14