✍🏻 반복문
01. for
- 횟수가 정해져 있는 반복을 수행하는 경우 for문 이용
//for (선언_초기화; 조건; 증감){ }
//2개 이상의 초기화 가능
for (int i = 1, j = 100; i <= 50 && j >=50; i++, j--){ }
//1부터 10까지의 수들의 합
int sum = 0;
for (int i = 1; i <= 10 ; i++) {
sum += i;
System.out.println("현재까지 총합은 " + sum + "입니다.")
}
System.out.println("1부터 10까지의 모든 수의 총합은 " + sum + "입니다."
02. while
- 정해진 횟수 없이 조건이 참인 동안 계속해서 반복을 수행하는 경우 while문 이용
- for문에서 쓰는 i 변수가 따로 없으니 선언
while (변수의 조건){
...수행할 명령...
}
//수영장에서 수영을 하는 모습
int distance =25; //전체 거리 25m
int move = 0; //현재 이동 거리 0m
while (move < distance){
System.out.println("발차기를 계속 합니다.");
System.out.println("현재 이동 거리 :" +move);
move += 3; //3미터 이동
}
System.out.println("도착하였습니다.");
03. do while
- while 문은 조건 먼저 살펴보고, 참이면 명령 반복 실행
- do while 문은 일단 명령 수행하고, 조건을 확인한 다음 계속 반복할지 결정
-do while문은 무조건 한번은 수행하게 되어 있다.
do {
...수행할 명령...
} while (조건);
do{
System.out.println("발차기를 계속 합니다.");
System.out.println("현재 이동 거리 : " +move);
move += 3; //3m이동
} while (move < distance);
System.out.println("도착했습니다.");
04. 이중 반복문 🌕
- 반복문 안에 또 다른 반복문이 들어갈 수 있다
//별 왼쪽 삼각형 만들기
for(int i = 0; i < 5; i ++){ //세로
for(int j = 0; j < i + 1; j++){ //가로
System.out.println("*");
}
System.out.println();
}
//별 오른쪽 삼각형 만들기
for(int i = 0; i < 5; i++){
for(int j = 0; j < 4 - i; j++){
System.out.println(" ");
}
for(int k = 0; k < i + 1; k++){
System.out.println("*");
}
System.out.println();
}
//구구단
for(int i = 2; i < 10; i++){
for(int j = 1; j < 10; j++){
System.out.println(i + "*" + j + "=" + (i * j));
}
}
05. break, continue
- 반복문을 break하며, if문 안에 넣어 사용하는 것이 기본
- break
-반복문을 정해진 횟수 또는 무제한으로 반복 실행하다가 특정 조건이 나왔을 때는 더이상 반복을 실행하지 않고 탈출 하고 싶을 때
-break는 당장 반복문을 부수고 탈출
//치킨 집에서 매일 20마리만 판매 (1인1닭)
//현재 손님은 50명 대기 중
//20번쨰 손님 이후로는 품절 안내
[for문]
int max = 20;
for (int i = 1; i <= 50 ; i++) {
System.out.println(i + "번 손님, 주문하신 치킨 나왔습니다.");
if (i == max) {
System.out.println("금일 재료가 모두 소진되었습니다.");
break; //반복문 탈출
}
}
System.out.println("영업을 종료합니다.");
[while문]
int index = 1; //손님 대기번호
while(index <= 50){
System.out.println(index + "번 손님, 주문하신 치킨 나왔습니다.");
if (index == max){
System.out.println("금일 재료가 모두 소진되었습니다.");
break; //반복문 탈출
}
}
System.out.println("영업을 종료합니다.");
- continue 🌕
-continue는 현재 진행중인 아직 남아있는 반복문의 아랫부분 명령을 실행하지 않고 다음 회차 반복문 ( 처음)으로 넘어간다.
-for문 continune : 자동으로 i++ 증감부분을 타고 조건을 확인 후, 다음 회차 반복 진행된다.
-while문 continue: 증감 확인없이 조건만 확인 후 다음 회차 반복 진행된다. (continue; 나오기 전 증감코드 한 줄 추가 해주어야 한다!!!)
-tip) 증감코드가 여러 곳에 있으면 헷갈리니까 애초에 while문 중괄호 처음에 추가해주면 코드가 좀 더 깔끔해진다.
//치킨 주문 손님중에 노쇼 손님이 있다고 가정
[for문]
int max = 20; //최대 치킨 판매 수량
int sold = 0; //현재 치킨 판매 수량
int noshow = 17; //대기번호 17번 손님이 노쇼
//일단은 치킨 모두 잘 가져갔다고 가정하고 코드 적어보기
for(int i = 1; int <= 50; i++){
System.out.println(i + "번 손님, 주문하신 치킨 나왔습니다.");
//만약 손님이 없다면??
if (i == noshow) {
System.out.println(i + "번 손님, 노쇼로 인해 다음 손님에게 기회가 넘어갑니다.");
continue;
}
sold++; //판매 처리
if (sold == max) {
System.out.println("금일 재료가 모두 소진되었습니다.");
break;
}
}
System.out.println("영업을 종료합니다.");
[while문]
int person = 0; //손님 번호
sold = 0;
while( person <= 50 ) {
person++;
System.out.println(person + "번 손님, 주문하신 치킨 나왔습니다.");
if ( person == noshow ) {
System.out.println(person + "번 손님, 노쇼로 인해 다음 손님에게 기회가 넘어갑니다.");
continue;
}
sold++;
if( sold == max ){
System.out.println("금일 재료가 모두 소진되었습니다.");
break;
}
}
System.out.println("영업을 종료합니다.");