JAVA - 반복문 (for문)

2022. 2. 5. 10:22·JAVA
728x90


반복문
for문

 

for문

 반복문은 어떤 작업이 반복적으로 수행되도록 할 때 사용되며, 반복문의 종류로는 for문과 while문, 그리고 while문의 변형인 do-while문이 있다.

 

 for문과 while문은 구조와 기능이 유사하여 어느 경우에나 서로 변환이 가능하며, 반복 횟수를 알고 있을 때는 for문을, 그렇지 않을 때에는 while문을 사용한다. 

 

 예제를 통해 살펴보자.

 

for(int i=1;i<=7;i++){
	System.out.println("taking an extra step.");
}

 

"taking an extra step." 이라는 문장이 7번 출력되게 작성했다.

변수 i에 1을 저장한 후, 매 반복마다 i의 값을 1씩 증가시킨다. 그러다가 i의 값이 7를 넘으면 조건식 'i<7'가 거짓이 되어 반복을 마치게 된다. i의 값이 1부터 7까지 증가하니까 모두 7번 반복한다. 

 


 for문의 구조와 수행순서 

 

for문은 크게 초기화, 조건식, 증감식, 블럭{ }으로 이루어져 있다.

조건식이 참인 동안 블럭{ }내의 문장들을 반복하다가 거짓이 되면 반복문을 벗어난다.

 

for(초기화;조건식;증감식){
	... //조건식이 참(true)인 동안 수행될 문장들
}

 

수행 순서를 살펴보면,

초기화 → 조건식 → 수행될 문장 → 증감식 의 순서로 반복된다. 

그러다가 조건식이 거짓이 되면 for문을 벗어난다.

 

예제

public class ForEx1 {
    public static void main(String args[]) {
      for(int i=1;i<=7;i++){ //괄호{}안의 문장을 7번 반복
         System.out.println("taking an extra step.");
      }
    }  
}

 


초기화

 

 반복문에서 사용될 변수를 초기화하는 부분이며 처음에 한 번만 수행된다.

 

for(int i=1;i<=117;i++{ //변수i의 값을 1로 초기화
	...
}

 

 보통 변수 하나로 for문을 제어하지만, 둘 이상의 변수가 필요할 때는 아래와 같이 콤마','를 구분자로 변수를 초기화 하면 된다. (단, 두 변수의 타입은 같아야 한다.)

 

for(int i=1,j=0;i<=117;i++){ //int타입의 변수 i와 j를 선언하고 초기화
	...
}

조건식

 

 조건식의 값이 참(true)이면 반복을 계속, 거짓(false)이면 반복을 끝내고 for문을 벗어난다.

 

for(int i=1;i<=117;i++{ //'i<=117'가 참(true)인 동안 블럭{}안의 문장들을 반복
	...
}

증감식

 

 반복문을 제어하는 변수의 값을 증가 또는 감소시키는 식이다. 매 반복마다 변수의 값이 증감식에 의해 변하다가 조건식이 거짓(false)이 되어 for문을 벗어난다. 

 

'++' 이외의 연산자들

for(int i=117;i>=1;i--){ // 117부터 1까지 1씩 감소
	...
}

for(int i=1;i<=117;i+=2){ // 1부터 117까지 2씩 증가
	...
}

for(int i=1;i<=117;i*=3){ // 1부터 117까지 3배씩 증가
	...
}

 

 증감식도 콤마','를 이용해서 두 문장 이상을 하나로 연결해서 사용할 수 있다.

 

for(int i=1, j=10;i<=117;i++, j--){ 
	...
}
// i는 1부터 117까지 1씩 증가
// j는 10부터 1까지 1씩 감소

 

지금까지 살펴본 초기화, 조건식, 증감식 이 세 가지 요소들은 필요하지 않으면 생략할 수 있으며, 모두 생략도 가능.

 

for(;;){ // 초기화, 조건식, 증감식 모두 생략, 조건식은 참(true)
	...
}

 


for문 예제

ForEx2

 

public class ForEx2 {
    public static void main(String args[]) {
      for(int i=1; i<=7; i++)
         System.out.println(i); // i의 값을 출력
         
      for(int i=1; i<=7; i++)
         System.out.print(i); // print()를 쓰면 가로로 출력
    }  
}

Tip. 반복하는 문장이 하나일 때는 괄호{ }를 생략할 수 있다.

 

ForEx3

총 5명의 학생이 시험을 보는데 점수가 60점이 넘으면 합격 그렇지 않으면 불합격이다.

 

public class ForEx3 {
    public static void main(String args[]) {
        int[] marks = {90, 25, 67, 45, 80};
        for(int i=0; i<marks.length; i++) {
            if (marks[i] >= 60) {
                System.out.println((i+1)+"번 학생은 합격입니다.");
            }else {
                System.out.println((i+1)+"번 학생은 불합격입니다.");
            }
        }       
    }  
}

 

Reference

1. 04-04 for 문 - 점프 투 자바

2. 남궁성님의 Java의 정석 기초편 - CHAPTER4 13. for문

 

 

저작자표시 (새창열림)

'JAVA' 카테고리의 다른 글

[JAVA] Exception in thread "main" java.lang.StringIndexOutOfBoundsException  (6) 2022.03.12
[JAVA] Exception in thread "main" java.lang.ArithmeticException: / by zero  (2) 2022.03.09
JAVA - 배열 (Array)  (2) 2022.01.31
JAVA - 스캐너 클래스 (Scanner Class)  (0) 2022.01.26
JAVA - 객체 지향 프로그래밍 (OOP)  (16) 2022.01.12
'JAVA' 카테고리의 다른 글
  • [JAVA] Exception in thread "main" java.lang.StringIndexOutOfBoundsException
  • [JAVA] Exception in thread "main" java.lang.ArithmeticException: / by zero
  • JAVA - 배열 (Array)
  • JAVA - 스캐너 클래스 (Scanner Class)
ro117youshin
ro117youshin
코딩 / 외국어공부 (영어, 중국어) / 독서 등 자기계발을 기록합니다.
  • ro117youshin
    Taking an extra step
    ro117youshin
  • 전체
    오늘
    어제
    • 분류 전체보기 (153)
      • DDD (5)
      • JAVA (13)
      • Spring Boot (2)
      • Spring (4)
      • MySQL (1)
      • C (1)
      • Algorithm & Data Structure (34)
        • study (15)
        • programmers (0)
        • boj (18)
        • assignments (1)
      • CS: Computer Science (6)
        • CS50 2019 (4)
        • Network (2)
        • Database (0)
      • Git (3)
      • foreign language (16)
        • English (0)
        • Chinese (16)
      • BOOK (2)
      • ETC (2)
      • youtube.com|user|egoing2 (64)
        • WEB1 - HTML & Internet (5)
        • WEB2 - CSS (9)
        • WEB2 - JavaScript (18)
        • JavaScript Immutability (0)
        • DATABASE1 (4)
        • DATABASE2 MySQL (12)
        • JAVA1 (16)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    조건문
    variable
    baekjoon
    HTML
    나의 앱 만들기
    객체
    HSK6급
    js
    생활코딩
    중국어공부
    도메인 주도 설계
    백준
    최범균
    개발공부
    DATABASE2
    HSK6급모의고사
    Java
    자바
    코딩공부
    알고리즘문제
    HSK6급공부
    css
    HSK6급필수어휘
    javascript
    ddd
    mysql
    Domain Driven Design
    JAVA1
    Java자료구조
    BOJ
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
ro117youshin
JAVA - 반복문 (for문)
상단으로

티스토리툴바