자바 반복문 for문에 대해 알아보자
2025. 1. 3. 13:00ㆍJAVA
728x90
반응형
안녕하세요. 진득코딩입니다.
이번 시간에는 조건문에 이어 반복문에 대해 알아보도록 하겠습니다.
반복문은 어떤 작업이 반복적으로 수행되도록 할 때 사용되며, 반복문의 종류로는 for문, while문, 그리고 while문의 변형인 do - while문이 있습니다.
이번 시간에는 반복문 중 for문에 대해서 살펴보도록 하겠습니다.
반복문
- 반복문은 주어진 조건을 만족하는 동안 주어진 문장들을 반복적으로 수행하므로 조건식이 포함됩니다.
- 또한 조건식의 결과가 true이면 참이고, false이면 거짓으로 간주됩니다.
- for문과 while문은 구조와 기능이 유사하여 어느 경우에나 서로 변환이 가능하기 때문에 반복문을 작성해야 할 때 for문과 while문 중 어느 쪽을 선택해도 좋으나 for문은 주로 반복 횟수를 알고 있을 때 사용합니다.
for문
- for문은 반복 횟수를 알고 있을 때 적합합니다.
- 구조가 조금 복잡하지만 직관적이라 오히려 이해하기 쉽습니다.
for문의 구조와 수행순서
- for문은 '초기화', '조건식', '증감식', '블럭{}', 모두 4부분으로 이루어져 있습니다.
- 또한 조건식이 참인 동안 블럭{} 내의 문장들을 반복하다 거짓이 되면 반복문을 벗어납니다.
- 제일 먼저 '초기화'가 수행되고, 그 이후는 조건식이 참인 동안 '조건식 -> 수행될 문장 -> 증감식'의 순서로 계속 반복됩니다.
- 그러다가 조건식이 거짓이 되면, for문 전체를 빠져나가게 됩니다.
초기화
- 반복문에 사용될 변수를 초기화하는 부분이며 처음에 한번만 수행합니다.
- 둘 이상의 변수가 필요할 때는 콤마','를 구분자로 변수를 초기화하면 됩니다.
- 이때, 두 변수의 타입은 같아야 합니다.
조건식
- 조건식의 값이 참(true)이면 반복을 계속하고, 거짓(false)이면 반복을 중단하고 for문을 벗어납니다.
- for의 뜻이 '~하는동안'이며, 조건식이 '참인 동안' 반복을 계속한다고 생각하면 쉽습니다.
- 조건식을 잘못 작성하면 블럭{} 내의 문장이 한 번도 수행되지 않거나 영원히 반복되는 무한 반복에 빠지기 쉬우므로 주의해야 합니다.
증감식
- 반복문을 제어하는 변수의 값을 증가 또는 감소시키는 식입니다.
- 매 반복마다 변수의 값이 증감식에 의해 점진적으로 변하다가 결국 조건식이 거짓이 되어 for문을 벗어나게 됩니다.
- 증감식도 쉼표 ','를 이용하여 두 문장 이상을 하나로 연결해서 쓸 수 있습니다.
초기화, 조건식, 증감식
- 위 세 가지 요소는 필요하지 않으면 생략할 수 있으며, 심지어 모두 생략하는 것도 가능합니다.
- 조건식이 생략된 경우 참(true)으로 간주되어 무한 반복문이 됩니다.
- 대신 블럭{}안에 if문을 넣어서 특정 조건이 만족하면 for문을 빠져나오게 해야 합니다.
- 1부터 5까지 세로로 한번, 가로로 한번 출력하는 간단한 예제입니다.
- 1부터 10까지의 합을 구하는 예제입니다.
- 변수 i를 1부터 10까지 변환시키면서 i를 sum에 계속해서 누적시킵니다.
- for문에 i와 j, 두 개의 변수를 사용해서 i는 1부터 10까지 증가키시는 동시에, j는 10부터 1까지 감소시키면서 출력합니다.
- console에 출력된 i와 j의 관계를 살펴보면, i와 j를 더한 값이 11로 일정하다는 것을 알 수 있습니다.
- 이 사실을 이용하면 j는 '11-i'가 되는데 이를 이용해 j 대신 '11-i'라는 식을 사용할 수 있습니다.
- for문에 사용되는 변수의 수가 적은 것이 더 효율적이고 간단하므로 변수들의 관계를 잘 파악하여 불필요한 변수의 사용을 줄이는 것이 좋습니다.
- 변수 i의 값이 1부터 10까지 변하는 동안, 다양한 연산자를 이용해서 짝수 (2*i), 홀수(2*i+1), 제곱(i*i), 역순(11-i), 순환(i%3), 반복(i/3)을 구하는 방법을 알 수 있습니다.
- 나머지 연산자(%)를 이용하여 특정 범위의 값들이 순환하면서 반복되는 결과를 얻을 수 있습니다.
- 또한 나누기 연산자(/)를 이용하여 같은 값이 연속적으로 반복되게 할 수 있습니다.
중첩 for문
- for문 안에 또 다른 for문을 포함시키는 것도 가능합니다.
- 중첩의 횟수는 거의 제안이 없습니다.
- 중첩 for문을 이용하여 많은 초보 개발자들이 첫 번째 좌절을 느끼는 별찍기를 할 수 있습니다.
- 다른 예제는 몰라도 별찍기와 구구단 문제는 꼭 아무것도 안 보고 혼자 프로그래밍하는 것을 추천합니다.
- 2개의 for문이 중첩되었으면 바깥 쪽 for문이 5번, 안쪽 for문이 10번 반복되므로 모두 50번(5 * 10)이 반복됩니다.
- 가로로 출력하려면, println 대신 print 메서드로 출력하면 됩니다.
- 별 찍기를 이용하여 삼각형을 만드는 팁은 한 문장의 조건식에 숫자 대신 변수 i를 넣고, 이 문장을 i의 값이 1부터 5까지 증가하는 for문 안에 넣으면 됩니다.
- 사용자로부터 라인의 수를 입력받아 별을 출력하도록 약간 수정한 예제입니다.
- 별 찍기가 완료되었으면 구구단을 출력하는 예제를 해보면 좋습니다.
- 반복문에 반복문을 중첩해서 구구단을 출력하는 예제입니다.
- 안쪽 for문은 하나의 단을 출력하는데, 바깥쪽 for문은 안쪽 for문을 8번 (2단부터 9단까지) 반복해서 출력합니다.
- console창에 출력된 식들이 너무 많아서 위에 부분만 캡처했으니 직접 코드를 작성해서 console창을 확인해 보시기 바랍니다.
- 3개의 반복문이 중첩되어 있는 경우 어떤 순서로 반복이 수행되는지를 눈으로 직접 확인할 수 있는 예제입니다.
- 2중 반복문을 이용해서 i와 j를 1부터 5까지 1씩 증가시키면서 i와 j의 값을 쌍으로 출력하였습니다.
- 예제 4-20에서 2중 for문에 if문을 넣어서 조건식 'i==j'를 만족하는 경우에만 i와 j의 값을 출력하고 나머지는 공백을 출력하였습니다.
- if문의 조건식을 다르게 하면, 다양한 모양의 출력 결과를 얻어낼 수 있습니다.
향상된 for문 (enhanced for statement)
for( 타입 변수명 : 배열 또는 컬렉션) {
// 반복할 문장
}
- 타입은 배열 또는 컬렉션의 요소의 타입어야 합니다.
- 배열 또는 컬렉션에 저장된 값이 매 반복마다 하나씩 순서대로 읽혀서 변수에 저장됩니다.
- 반복문의 괄호 {} 내에서는 이 변수를 사용해서 코드를 작성합니다.
- 배열이나 컬렉션에 저장된 값을 불러올 때 일반적인 for문을 사용하는 것보다 향상된 for문이 더 간결합니다.
- 다만 향상된 for문은 일반적인 for문과 달리 배열이나 컬렉션에 저장된 요소들을 읽어오는 용도로만 사용할 수 있다는 제약이 있습니다.
- 향상된 for문을 활용한 간단한 예제입니다.
이번 시간에는 일반적인 반복문인 for문에 대해 알아보았습니다.
for문을 사용하게 되면 반복적인 일을 간단하게 처리할 수 있고 가독성도 올라가기 때문에 제대로 익혀서 잘 활용하는 것을 추천합니다.
이번 포스팅은 여기까지입니다.
궁금하신 내용이나 문의하시고 싶은 내용이 있다면 댓글에 남겨주시면 열심히 답글 달겠습니다.
끝까지 봐주셔서 감사합니다.😊
728x90
반응형
LIST
'JAVA' 카테고리의 다른 글
자바 배열에 대해 알아보자 (2) | 2025.01.29 |
---|---|
자바 반복문 while문에 대해 알아보자 (0) | 2025.01.06 |
자바 조건문 switch문에 대해 알아보자 (0) | 2025.01.02 |
자바 제어문인 조건문 if문에 대해 알아보자 (0) | 2025.01.01 |
비트 연산자와 그 외 여러 연산자들에 대해 알아보자 (0) | 2024.12.31 |