개발군싹

[Java] 반복문 본문

Java

[Java] 반복문

개발자군싹 2023. 9. 12. 17:46

Java

반복문이란?

프로그램 수행을 하는 제어문 중 하나로 특정 로직을 반복해서 수행할 때 사용할 수 있다.

반복문의 종류에는 'for문' , 'while문', 'do ~ while문' 이 있다.

 

for loop (for문)

for문은 일반적으로 반복 횟수를 미리 알 때 사용한다.

[선언방법]

for (초기식; 조건식; 증감식) {

//반복실행 로직

}

  • 초기식 : 반복문의 시작 시 초기식에 시작을 선언한다.
  • 조건식 : 반복문의 실행 조건을 선언한다. 반복실행 로직을 수행하고 조건식의 결과는 true/false에 따라 반복문을 지속적으로 수행할지 안할지를 결정한다.
  • 증감식 : 반복 실행 로직을 수행 후 조건식의 결과값이 true일 경우 선언한 증감식의 증감이 이루어진다. 보통은 for문의 반복수행 시 몇번 실행할지에 대한 초기식의 증감을 선언한다.

ex) 

// 100부터 1까지의 수를 출력하기

for (int i = 100; i > 0; i--) {

if (i % 9 == 0) { //출력 결과를 보기 편하게 숫자 10개마다 줄 바꿈의 조건을 주었다.

System.out.println("\n");

}

System.out.print(i + "\t");

}

위 코드에서는 100부터 1까지 1씩 감소하며 출력해주는 for문을 작성하였다.

(1) 초기식 : int i=100; 초기 시작은 100에서 시작한다. 

(2) 증감식 : i>0; 한번 실행 마다 i값이 0보다 큰지 확인 후 0보다 크다면(true) 증감연산을 수행 후 for문을 반복수행한다.

(3) 증감식 : i--; 조건식의 결과가 true이면 증감연산 i--; 연산 후 i 값이 99가 되어 다시 반복 수행한다.

이처럼 (1) => (2) => {반복로직실행} => 조건식 결과값 ? (true) i-- : (false) 반복문 종료; 순으로 for문이 수행된다.

조건식의 결과가 false가 될때 까지 (2) => {반복로직실행} => 조건식 결과값 ? (true) i-- : (false) 반복문 종료; 행위를 반복 수행한다.

 

while loop(while문)

while문은 반복 횟수를 미리 알지 못하고, 특정 조건이 유지되는 동안 반복문을 실행하고 싶을 때 사용한다.

[선언방법]

while(조건식) {

//반복실행로직

//증감연산 및 분기문

}

  • 조건식 : while문이 실행될 수 있는 조건식을 작성한다. 조건식의 결과가 true이면 지속적으로 while문 내 로직을 반복 수행한다.
  • while문 내에는 증감연산 및 분기문을 사용하여 특정조건에 맞는 횟수, while문을 끝낼 수 있는 분기문을 사용할 수 있다.

ex)

// 사용자가 끝이라고 입력할때까지 메세지 입력받는 기능

Scanner sc = new Scanner(System.in);

String msg = "";

while (!msg.equals("끝")) {

System.out.print("메세지 입력 > ");

msg = sc.nextLine();

System.out.println(msg);

}

위 코드에서 Scanner 클래스를 이용하여 사용자에게 문자열을 입력받고 '끝'이라고 입력하기 전까지 while문을 실행하는 로직을 간단하게 작성하였다. while문의 조건식에 사용자가 '끝'이라는 문자열을 입력하지 않으면 해당 반복구문을 실행하여 사용자에게 메세지를 입력받고 출력할 수 있다. '!msg.equals("끝")'라는 조건은 사용자가 문자열에 '끝'을 입력하면 해당 조건식 'msg.equals("끝")'의 결과가 true이고 !(not)연산자를 붙였으므로 결과 값이 반대가 되며 조건식의 결과가 false가 되어 while문을 종료한다.

 

do ~ while loop (do ~ while문)

while문과 유사한 형태를 가졌으며 조건식의 true / false 결과의 관계없이 최소 1번은 실행하는 반복문이다.

[선언방법]

do {

//반복수행 로직

}while(조건식);

코드 실행 시 do ~ while 반복문을 만나면 최소 한번을 수행 후 조건식을 만난다. 조건식의 결과가 true이면 반복수행 로직을 반복적으로 수행하며, 조건식의 결과가 false인 경우 해당 반복문을 종료한다. 

 

반복문을 이용한 예제 작성

public void practice17() {

// 2부터 사용자가 소수까지 소수개수 출력하기

//소수의 개수를 구해 출력하기

//단, 입력한 수가 2보다 작은 경우 "잘못입력하셨습니다." 안내 출력하기

Scanner sc = new Scanner(System.in);

System.out.print("숫자 > ");

int userNum = sc.nextInt();

int primeNumberCheck = 0;

int count = 0;

String checkPrimeNum = "";



for (int i = 2; i <= userNum; i++) { //사용자가 입력한 userNum값까지 반복문 수행;

primeNumberCheck = 0; 

for (int j = 1; j <= i; j++) {

if (i % j == 0) { //i값을 j로 나눈 나머지가 0일 경우 

primeNumberCheck++;

}

}

if (primeNumberCheck == 2) {

checkPrimeNum += i + " ";

count++;

}



}

if (primeNumberCheck > 2) {

System.out.println("소수가 아닙니다.");

} else if (primeNumberCheck == 0) {

System.out.println("잘못 입력하셨습니다.");

} else {

System.out.println("소수입니다.");

System.out.println(checkPrimeNum);

System.out.println("2부터 " + userNum + "까지 소수의 개수는 " + count + "개 입니다.");

}

}

위 코드에 대한 실행결과

'Java' 카테고리의 다른 글

[Java] 객체란(1)?  (0) 2023.09.15
[Java] 배열  (0) 2023.09.12
[Java] 조건문  (0) 2023.09.12
[Java] 연산자  (0) 2023.09.11
[Java] 형 변환(Casting)  (0) 2023.09.10