JAVA 기초(6) 반복문

Dayon·2023년 11월 19일
0

자바-기초다지기

목록 보기
6/6
post-thumbnail

🎒 1. 반복문의 개요


반복문의 필요성

  • 다음 결과를 출력하기 위해 System.out.println을 3번 작성해야 한다.
    자바는 재밌다.
    자바는 재밌다.
    자바는 재밌다. 
    반복문 사용시 유용
    for ( int i = 0 ; i<3 ; i++) {
          System.out.println(”자바는 재밌다.);
    }

for문의 개요

for ( 초기값 ; 조건식 ; 증감식) {
      반복할 문장
}

초기값 수행 → 조건식 확인 → 반복할 문장 실행 → 증감식 수행 → 반복문 탈출

public class Code6_1 {
    public static void main(String[] args){
        for (int i = 1 ; i<10 ; i++ ){
            System.out.print(i + "  ");
        }
    }
}

출력 결과 : 1 2 3 4 5 6 7 8 9


🌱  2. for 문


for 문의 활용

  • 1~10의 합계 구하기
    • 의사코드 : 프로그램 코드가아닌 글로 적은 것을 의사코드라고 함
1부터 10까지 합계를 누적할 변수 hap 준비

for (변수 i가 1을 시작으로 10까지 1씩 증가) {
		hap에 i값을 더함 
}
hap 값을 출력 
public class Code6_7 {
    public static void main(String[] args){
        int hap = 0 ; 
        for ( int i=1 ; i<=10 ; i++ ){
            hap = hap + i ; 
        }
        System.out.println("1부터10까지의 합 : " + hap);
    }
}

  • 예제2 ) 1000~2000 사이의 홀수의 합 구하기
    public class Code6_7 {
        public static void main(String[] args){
            int hap = 0 ; 
            for ( int i=1001 ; i<=2000 ; i+=2 ){
                hap = hap + i ; 
            }
            System.out.println("1000부터 2000까지의 홀수의 합 : " + hap);
        }
    }

중첩 for 문

  • for 문 안에 for문을 사용하는 것을 말한다.
  • 중첩 for 문의 실행 횟수 = 외부 for문의 반복횟수 * 내부 for문의 반복횟수
public class Code6_9 {
    public static void main(String[] args) {
        for ( int i = 0 ; i <3 ; i++ ){
            for (int k = 0 ; k<2 ; k++ ){
                System.out.println("출력하고있는 것은 int i = " + i + "   k = " + k + "입니다" );
            }
        }
    }
}

// 출력 결과 
출력하고있는 것은 int i = 0   k = 0입니다
출력하고있는 것은 int i = 0   k = 1입니다
출력하고있는 것은 int i = 1   k = 0입니다
출력하고있는 것은 int i = 1   k = 1입니다
출력하고있는 것은 int i = 2   k = 0입니다
출력하고있는 것은 int i = 2   k = 1입니다

❤️‍🔥  3. While 문


for문과 while문의 비교

  • for문 : 사용할 때는 대개 반복할 횟수를 결정한 후 그 횟수 만큼 반복
    for (초기값 ; 조건식 ; 증감식) {
    		반복할 문장
    }
  • while문 : 반복 횟수를 미리 결정하기보다는 조건식이 참일 때 반복
    while ( 조건식 ) {
    		반복할 문장
    }
  • while 문의 형식

    • 조건식을 확인하여 이 값이 참이면 반복할 문장을 수행

    • 반복할 문장이 끝나는 곳에서 다시 조건식으로 돌아와 같은 작업을 반복

      public class Code06_10 {
      		public static void main(String[] args) {
      				int i=0 ;
      				while(i<3) {
      						System.out.println(i + ": 난생처음 자바는 재미있습니다. ^^");
      						i++ ; 
      				}
      		}
      }
      
      // 0 : 난생처음 자바는 재미있습니다. ^^
      // 1 : 난생처음 자바는 재미있습니다. ^^
      // 2 : 난생처음 자바는 재미있습니다. ^^
      

무한 루프를 위한 while문

  • 반복문을 빠져나올 수 없어 무한히 반복되는 것을 의미함 → 이를 while문에 사용할 수 있음
  • while문에 무한 루프를 적용하려면 조건식을 true로 지정해야 함
    public class Code06_11 {
    		public static void main(String[] args) {
    				while (true) {
    						System.out.println("h"); 
    				}
    		}
    }
    
    // hhhhhhhhhhhhh.... (무한반복) 
  • 무한 루프 예제 : 프로그램을 종료하기 전까지 두 숫자의 합계를 반복 계산하기
    import java.util.Scanner;
    
    public class Code06_12 {
    
        public static void main(String[] var0) {
            Scanner s = new Scanner(System.in);
            int hap = 0 ;
            int num1, num2 ;
    
            while(true) {
                System.out.print("숫자1 ==> ");
                num1 = s.nextInt();
                System.out.print("숫자2 ==> ");
                num2 = s.nextInt();
    
                hap = num1 + num2;
                System.out.println("" + num1 + " + " + num2 + " = " + hap);
            }
        }
    }
  • 무조건 한번은 실행하는 do-while 문 반복할 문장이 무조건 한번은 실행된다는 것
    int num = 10 ; 
    for (int i=num ; i<9 ; i++) { 
    		System.out.println("for문이 실행됐어요. ^^");
    }
    
    while (num < 9) {
    		System.out.println("while문이 실행됐어요. ^^");
    }
    위의 for문과 while문의 println()은 한번도 실행되지 않는다.
    do {
    		System.out.println("do-while문이 실행됐어요.^^") ; 
    } while (num < 9);
    반면에 위의 do-while문의 경우 중괄호 안의 내용을 실행한 후 while 조건식을 확인하기 때문에 한번 println() 함수가 실행한 후 조건식이 false 여서 종료된다.

break문과 continue문

  • 반복문을 탈출시키는 break 문을 만났을 때 무조건 반복문을 빠져나감
public class Code06_13 {
    public static void main(String[] args){
        for (int i = 0; i <1000; i++){
            System.out.println(i + ": 반복문을 실행합니다");
            break;
        }
    }
}
// 0 : 반복문을 실행합니다. 
  • break문 예제 :
    계속 두 숫자의 합을 구하는 코드 6-12에 break문 적용해보기
import java.util.Scanner;

public class Code06_14 {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int hap = 0 ;
        int num1, num2 ;

        while(true) {
            System.out.print("숫자1 ==> ");
            num1 = s.nextInt();
            if (num1 == 0 ) 
                break;
            System.out.print("숫자2 ==> ");
            num2 = s.nextInt();
            
            hap = num1 + num2;
            System.out.println(num1 + "+" + num2 + "=" + hap);
        }
        System.out.println("0 을 입력해서 계산을 종료합니다. ");
        s.close();
    }
}
  • 반복문의 처음으로 돌아가게 하는 continue 문 continue문은 반복문의 남은 부분을 모두 건너뛰고 반복문의 처음으로 돌아가게 함
    • continue 문 예제
public class Code06_15 {
    public static void main(String[] args) {
        int hap = 0 ;
        for (int i = 0; i <=100 ; i++) {
            if (i%4 == 0) {
                continue;
            }
            hap += i ;
        }
        System.out.println("1~100의 합계(4의 배수 제외) :" + hap);
    }
}
1~100의 합계(4의 배수 제외) :3750


출처 : 난생처음 자바 프로그래밍 우재남 한빛출판사 2023



profile
success is within reach, allow yourself time

0개의 댓글