본문으로 바로가기
반응형

 

 

 

 

 

자바에서 반복문이란,,,

 

 

 

프로그램 수행 흐름을 바꾸는 역할을 하는 제어문 중 하나로 

특정 문장들을 반복해서 수행하도록 하는 역할을 하는데요.

 

 

쉽게 설명해 순차적으로 진행되야 할 코드를

반복을 주어서 도돌이표처럼 한 코드를 반복 수행할 수 있게 합니다.

 

 

 

 

 

 

 

반복문에 종류는 두 가지가 있습니다.

 

 

 

 

 

forwhile이 있는데요.

큰 차이는 없습니다.

 

 

 

조건식, 증감식, 수행될 문장 이 세 조합의 위치만 잘 설정해주면 됩니다.

 

 

 

 

 

 

 

 

EX ))

 

 

 

    ●  for문

 

 

 

1회전 할 때 : 초기식 확인 후 조건식 확인 -> 조건식이 true면 문장 수행 -> 조건식이 false면 수행 X


2회전 할 때: 증감식 연산 후 조건식 확인 -> 조건식이 true면 문장 수행 -> 조건식이 false면 수행 X

 

˙

˙

˙

 

 

결과는 1 ~ 10 까지 한줄로 출력되는걸 확인 할 수 있습니다.

 

 

 

 

 

 

 

 

    ● 이중 for문

 

 

 

또 이런식으로 for문 안에 또 다른 for문을 사용할 수 있습니다.

 

 

for문에 진입하면 수행될 문장1을 먼저 수행하고 

 

두 번째 for문에 진입하면 조건식2가 false가 될 때까지 수행,

문장2를 수행 후 나오면


수행될 문장3을 수행하고 조건식1로 돌아와 true면 다시 반복

 

 

 

순서는 위와 같습니다.

 

 

 

 

 

 

    ● while문

 

 

 

 

 

for문과 비슷한 반복문 while이 있는데요

 

 

  - 조건식이 true일 때 문장 수행
  - 문장 수행이 끝나면 조건식 다시 확인 후 true면 수행,
  - 조건식이 false가 될 때까지 수행
  - 조건식이 false가 되면 반복문 종료

 

위 순서로 진행이 됩니다.

 

 

 

결과는 1 ~ 10 까지 한줄로 출력되는걸 확인 할 수 있습니다.

 

 

 

 

 

 

 

 

    ● do ~ while문

 

 

 

 

 

while문과 비슷한 do ~ while 문이 있는데요.

 

whiledo~while의 차이점은,

 


do~while은 조건문이 true가 아니더라도
무조건 한 번 이상 수행을 합니다.

 

 

그리고 while 뒤에 ;(세미콜론)이 꼭 필요합니다.

 

 

 

 

진행순서는 아래와 같습니다.

 

    - do 안의 내용 먼저 실행
      - 조건식 확인 후 true면 문장 수행,
      - false면 종료

 

 

 

 

 

    ● 분기문 (break, continue)

 

 

 

반복문안에는 분기문을 사용할 수 있습니다.

 

분기문을 사용해 반복문을 빠져나오거나,

반복을 하지않고 다음 반복으로 넘어가거나 등.. 할 수 있습니다.

 

 

 

분기문은 break, continue 두 가지가 있습니다.

 

 

 

EX))

 

   ● break - 반복문에서는 break조건에 해당할 경우

                  break문 자신이 포함된 가장 가까운 반복문을 빠져나갑니다.

 

 

 

예시로서 설명하자면,

 

i가 1씩 증가하다가 10보다 크거나 같아지는 경우,

반복문을 빠져나오는 것이죠.

 

 

 

 

 

 

 

   ● Continue

 

 

            - 반복문 내에서만 사용 가능하며 반복문 실행 시,

              continue 아래 부분은 실행하지 않고 반복문 다시 실행합니다.


            - for문의 경우 증감식으로 이동,
              while(do~while)문의 경우 조건식으로 이동합니다.

 

 

 


continue문은,

 

 

전체 반복 중에 특정 조건을 만족하는 경우를 제외하고자 할 때 유용합니다.

 

 

 

 

 

 

 

continue문 예시입니다.

 

 

i가 1부터 1씩 증가하는데,

i가 2로 나눴을 때, 나머지가 0이라면(짝수라면)

다시 반복문 상단으로 돌아갑니다.

 

 

 

 

 

그럼 반복문의 예제를 살펴봅시다.

 

 

 

 

 

 

 

 

 


반복문 예제


 

난이도 ★☆☆☆☆

 

 

예제 1

 

 

Q : 정수값을 입력받아 1 부터 입력받은 값까지 1씩 증가된 값을 출력하는 코드를 작성한다.

     단, 1 부터 시작하는 값이 아닌 100 부터 시작하는 형태로 나오게 한다.
     

    예)
        정수 입력 : 3
        100 101 102 

 

 

 

 


 

 

 

public static void ex1() {
		System.out.println("문제 1.");
		
		System.out.print("정수 입력 : ");
		int num = sc.nextInt();  sc.nextLine();
		for(int i=1; i<=num; i++) {
			System.out.print((i+99)+ " ");
		}
		System.out.println();
}
public static void main(String[] args) {
	ex1();
}

 


 

 

 

 

난이도 ★☆☆☆

 

 

예제 2

 

 

Q : 정수값을 입력받아 1 부터 입력받은 값까지 1씩 증가된 값을 누적하여 

     합을 구하는 코드를 작성한다.
   
     예 1.)
         정수 입력 : 3
         누적합 : 6
   
    예 2.)
         정수 입력 : 5
         누적합 : 15
   
    예 3.)
         정수 입력 : 10
         누적합 : 55

 

 

 

 

 


 

 

 

 

public static void ex2() {
		System.out.println("문제 2.");
		
		int sum=0;
		
		System.out.print("정수 입력 : ");
		int num = sc.nextInt();  sc.nextLine();
		for(int i=1; i<=num; i++) {
			sum += i;
		}
		System.out.println("누적합 : " + sum);
		
}
public static void main(String[] args) {
	ex2();
}

 


 

 

 

 

 

난이도 ★

 

 

예제 3

 

 

Q : 정수값을 입력받을 때 지정된 범위의 입력값이 아닌 경우 

     최대 3번 다시 입력 받을 수 있도록 하는 코드를 작성한다.
     (지정된 범위는 1 ~ 100 사이의 값이다.)

   

 

 

 

 

 


 

 

public static void ex3() {
		int res=0;
		for(int i=1; i<=3; i++) {
			
			System.out.print("정수 입력 : ");
			int num = sc.nextInt();  sc.nextLine();
			if(num >= 1 && num <=100) {
				//System.out.println(num);
				res = num;
				break;
			}else if(i==3) {
				System.out.println("3번의 기회를 놓쳤습니다..");
				break;
			}else{
				System.out.println("다시 입력 (1~100사이의 값)");
			}
			
		}
		
		if(res != 0)
			System.out.println("입력한 정수의 값은 : " + res);
		
}
public static void main(String[] args) {
	ex3();
}

 

 

 


 

 

 

 

 

난이도 ★

 

 

예제 4

 

 

Q : 사용자가 입력한 문자열을 기반으로 파일명이 자동으로 생성되는 프로그램을 만들려고 한다.
  다음의 요구 사항을 파악하여 사용자가 원하는 기능이 동작하도록 코드를 작성하시오.
   
  1. 임의의 파일명을 입력할 수 있어야 한다.
  2. 파일은 1개를 생성할 수도 있지만 원하는 경우 2개 이상도 생성할 수 있다.
  3. 만약 2개 이상의 파일을 생성하는 경우 2번째 파일 부터는 파일명 뒤에 "[2]" 접미사가 붙는다.
  4. 3번 요구사항의 접미사 숫자값은 2 로 고정하는 것이 아니라 파일 수에 맞추어 1씩 증가해야 한다.
   
  예)
       파일명 입력 : newFile
       생성 파일수 : 1
       결과
       newFile 생성 완료!
   
  예)
       파일명 입력 : newFile
       생성 파일수 : 3
       결과
       newFile 생성 완료!
       newFile[2] 생성 완료!
       newFile[3] 생성 완료!

 

 

 

 

 

 


 

 

 

 

public static void ex4() {
		String filename = "";
		int num=0;
		System.out.print("파일명 입력 : ");
		filename = sc.nextLine();
		
		System.out.print("생성 파일 수 : ");
		num = sc.nextInt(); sc.nextLine();
		
		System.out.println("결과:");
		
		if(num <= 0) {
			System.out.println("파일 수는 1개보다 작을 수 없습니다. 양수로 입력!");
			System.exit(0);
		}
		for(int i=1; i<=num; i++) {
			
			if(i==1) {
				System.out.println("\t" + filename+ " 생성 완료!");
			}else if(i>1) {
				System.out.println("\t"+ filename + "[" + i + "] 생성 완료! " );
			}
		}
		
}
public static void main(String[] args) {
	ex4();
}

 

 

 

위 문제는 배열방식으로 푸는 것이 더 깔끔합니다.

추후에 공부하겠지만, 배열 방식으로 푸는 법도 아래에 작성했습니다. 

 

 


 

 

예제 4 (배열방식 풀이)

 

 

 

public static void ex4() {
		// 배열 방식
		System.out.print("파일명 입력 : ");
		String filename = sc.nextLine();
		
		System.out.print("생성 파일 수 : ");
		int num = sc.nextInt(); sc.nextLine();
		
		if(num <= 0) {
			System.out.println("파일 수는 1개보다 작을 수 없습니다. 양수로 입력!");
			System.exit(0);
		}
			
		System.out.println("결과:");
		
		String[] arr = new String[num];
		
		for(int i=0; i<num; i++) {
			arr[i] = filename;
			if(i==0) {
				System.out.println("\t" + filename+ " 생성 완료!");
			}else if(i>0) {
				System.out.println("\t"+ filename + "[" + (i+1) + "] 생성 완료! " );
			}
		}
		
		
}
public static void main(String[] args) {
	ex4();
}

 

 

 

 

 

 


 

 

이상 java의 조건문을 마치겠습니다.

 

 

 

 

 

 

다음 포스팅에선 java의 반복문(while)에 대해서 다뤄보고자 합니다.

https://healthdevelop.tistory.com/entry/java5

 

[Java] 자바 반복문(java for, while,do-while) | 반복문 예제 (java로 웹개발하기)(day05)

지난 포스팅에서 자바의 반복문(for)에 대해서 다뤄봤습니다. https://healthdevelop.tistory.com/entry/java4 복습 차원에서 반복문 예제를 풀어봅시다. 반복문 예제(복습용) 난이도 ★★☆☆☆ 예제 1 Q : 출

healthdevelop.tistory.com

 

 

반응형