제어문 - 2. 반복문

HYUNBIN CHO·2021년 5월 30일
0

java

목록 보기
7/23
post-thumbnail

🔷 반복문

어떤 작업이 반복적으로 수행할 때 사용
for문
while문
do-while문

🔷 1. for문

for(초기화; 조건식; 증감식){
    수행문
}
🔸 초기화 : 변수를 초기화 하는 부분.(처음 한 번만 수행함)
🔸 조건식 : 조건식의 값이 참이면 계속 반복하고, 거짓일 경우 for문을 벗어난다.
🔸 증감식 : 변수의 값을 증가하거나 감소시키는 식
🔸 for문의 수행 순서
초기화 ➡️ 조건식 검증 ➡️ 조건식이 참일 경우 수행문 수행 ➡️ 증감식 수행 ➡️ 조건식 검증 ...

for(int i = 1; i <= 10; i++){
    System.out.println(i);
}    

🔸 변수의 수가 적은 것이 더 간단하고 효율적이기 때문에 불필요한 변수의 사용은 줄이는 것이 좋다.

🔹 for문의 중첩

int num = 0;

Scanner sc = new Scanner(System.in);
String tmp = sc.nextLine();

num = Integer.parseInt(tmp);

for(int i = 0; i < num; i++){
    for(int j = 0; j <= i; j++){
        System.out.println("*");
    }
    System.out.println();
}    

🔹 향상된 for문

for(타입 변수명 : 배열 / 컬렉션){
   반복 수행문
}
🔸 JDK1.5부터 추가된 문법으로 배열, 컬렉션에 저장된 요소에 보다 편리하게 접근할 수 있다.

int[] arr = {10, 20, 30, 40, 50};
int sum = 0;
for(int tmp : arr){
    System.out.printf("%d ", tmp);
    sum += tmp;
}
System.out.println("sum = " + sum);
// 10 20 30 40 50
// sum = 150

🔷 2. while문

while(조건식){
  조건식이 참인 동안 반복할 수행문
}
🔸 while문은
1. 반복해야할 횟수를 모르거나
2. 무한루프를 돌려야 하거나
3. 이중루프를 쓸 때 자주 사용한다.

🔸초기화나 증감식이 필요하지 않은 경우에는 for문보다 while문이 더 적합하다.

int i = 5;
while(i-- != 0){
    System.out.println(i + " ");
}
// 후위형이기 때문에 조건식 평가후 값이 감소함 (5 =! 0 ➡️ 값 감소시킴 ➡️ System.out.print : 4)
// ➡️ 4 3 2 1 0 
// 전위형일 경우의 결과값은 4 3 2 1 

🔷 3. do-while문

do{
   수행문
} while(조건식);
while문과 반대로 {}안 문장을 먼저 수행 후 조건식을 평가한다.
➡️ 최소 1번은 수행되는 것이 보장된다.

int input = 0, answer = 0;
answer = (int)(Math.random()*100) + 1;
Scanner sc = new Scanner(System.in);

do{
    System.out.print("1과 100사이의 정수를 입력하세요.");
    input = sc.nextInt();
   
    if(input > answer){
        System.out.println("더 작은 수로 시도하세요.");
    }else if(input < answer){
        System.out.println("더 큰 수로 시도하세요.");
    }
}while(input =! answer);
System.out.println("정답입니다.");

🔷 4. break문

switch문에서와 같이 { }문장들을 수행 중 break문을 만나면 자신이 포함된 가장 가까운 반복문을 벗어난다. ➡️ 주로 if문과 같이 사용된다.(특정 조건을 만족하게 되면 반복문을 벗어나도록 설계)

int sum = 0;
int i = 0;
while(true){
    if(sum > 100){
        break;
    }
    ++i;
    sum += i;
    System.out.println("i = " + i);
    System.out.println("sum = " + sum);
}    
// i = 14, sum = 105

🔷 5. continue문

반복이 진행되는 중, continue문을 만나면 반복문의 끝으로 이동해서 다음 반복으로 넘어간다.
for문의 경우 증감식, while문과 do-while문의 경우 조건식으로 이동한다.
➡️ 전체 반복 중 특정 조건을 만족하는 경우를 제외할 때 유용하다.

for(int i = 0; i <= 10; i++){
    if(i%3 == 0)
        continue;
    System.out.println(i);    
}
// 1 2 4 5 7 8 10
profile
백견이 불여일타

0개의 댓글

관련 채용 정보