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 |