java/기본문법

[조건문과 반복문] for문

2022. 1. 25. 20:24
목차
  1. for문

for문

반복문은 for문과 while문이 있다. for문은 반복횟수를 알고있을 때 사용하고 반대로 while문은 반복횟수를 알 수 없을 때 사용한다. 그중 for문을 알아보자.

 

 

 

for문은 ①초기화 ②조건식 ③수행될 문장 ④증감식 순으로 작성된다. 조건식에서 참이되면 ②,③,④ 순으로 반복되고 조건식에서 거짓이 되면 for문은 끝나게 된다. 이것을 코드문으로 작성하면 아래와 같다.

i의 값이 1이 대입되는 순간부터 "I can do it."이라는 문장이 출력된다. i++에 따라 i의 값이 하나씩 증가하면서 i의 값이 5가 될 때 까지 "I can do it." 문장이 출력된다.

 

초기화

초기화는 처음에 한번만 수행된다. 또한 둘 이상의 변수를 사용할 수 있는데 두 변수의 타입이 같아야 한다.

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

 

조건식

조건식의 값이 참(true)이면 반복을 계속하고, 거짓(false)이면 반복을 중단하고 for문을 벗어난다. 조건식을 잘못 작성하면 블럭 {} 내의 문장이 한 번도 수행되지 않거나 영원히 반복되는 무한 반복에 빠지기 쉬우므로 주의해야 한다.

 

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

증감식

증감식은 반복문을 제어하는 변수의 값을 증가 또는 감소시키는 식이다. 매 반복마다 변수의 값이 증감식에 의해서 점진적으로 변하다가 결국 조건식이 거짓이 되어 for문을 벗어나게 된다. 변수의 값을 1씩 증가시키는 연산자 '++'이 증감식에 주로 사용되지만, 다음과 같은 다양한 연산자들로 증감식을 작성할 수 있다.

for(int i=1;i<=10;i++) { ... }		//1부터 10까지 1씩 증가
for(int i=10;i>=1;i++) { ... }		//10부터 1까지 1씩 감소
for(int i=1;i<=10;i+=2) { ... }		//1부터 10까지 2씩 증가
for(int i=1;i<=10;i*=3) { ... }		//1부터 10까지 3배씩 증가

 

위의 표현식 중에 'i++'가 포함된 표현을 많이 쓴다.

 

중첩 for문

 if문과 마찬가지로 for문도 중첩 for문을 사용할 수 있다. 중첩 for문은 for문안에 for문을 포함시키는 것을 말한다. 중첩 횟수에는 제한이 없으나 3회 이상 중첩 사용의 빈도가 낮다. 중첩 for문을 이해하는데에는 '별찍기'가 가장 좋다.

 

**********

**********

**********

**********

**********

 

우리는 이전에 배웠던 for문을 활용하여 위의 별찍기를 다음과 같이 표현할 수 있다.

우리는 위의 표현식에서 나타난 System.out.println("**********"); 의 문장을 아래와 같은 표현식으로 바꿀 수 있다.

변형된 식을 기존의 식에 대입하면 아래와 같은 중첩 for문이 완성된다.

 

그렇다면 위와 같은 별찍기를 하려면 어떻게 해야할까? 우선 별을 살펴보면,

 

열(j)의 값을 행(i)값이 따라가는 걸 알 수 있다. 그렇다면 앞서 활용한 중첩의 for문을 참조하여 아래와 같은 식으로 나타낼 수 있다.

 

for(int i=1;i<=5;i++) {
	for(int j=1;j<=i;j++) {
    	System.out.print("*");
    }
    System.out.println();
}

 

앞서 살펴본 중첩 for문을 이용한다면 반복을 줄여주고 코드의 길이를 줄여준다. 즉 효율성이 있다.

 


출처:자바의 정석 기초편(저자:남궁성 출판:도우출판)

'java > 기본문법' 카테고리의 다른 글

[조건문과 반복문]break문, continue문  (0) 2022.01.28
[조건문과 반복문]while문, do-while문  (0) 2022.01.28
[조건문과 반복문] 임의의 정수만들기 Math.random()  (0) 2022.01.25
[조건문과 반복문] switch  (0) 2022.01.25
[조건문과 반복문] if문  (0) 2022.01.25
  1. for문
'java/기본문법' 카테고리의 다른 글
  • [조건문과 반복문]break문, continue문
  • [조건문과 반복문]while문, do-while문
  • [조건문과 반복문] 임의의 정수만들기 Math.random()
  • [조건문과 반복문] switch
각시탈코더
각시탈코더
각시탈코더
각시탈코더
각시탈코더
전체
오늘
어제
  • 분류 전체보기 (203)
    • java (46)
      • 객체지향 (20)
      • 기본문법 (8)
      • 자바의 정석 연습문제 오답노트 (9)
      • 백준 알고리즘 (9)
    • Spring (17)
      • SpringMVC (8)
      • Spring DI와 AOP (5)
      • REST API와 Ajax (1)
      • Spring 프로젝트 (1)
      • Spring Security (0)
    • DB (47)
      • Oracle (15)
      • SQL오답노트 (25)
      • 튜닝 (0)
      • ERD (1)
      • DB 모델링 (5)
    • Servlet & JSP (3)
    • JDBC (2)
      • 기본 (1)
      • 스프링JDBC (1)
    • MyBatis (2)
    • JavaScript (2)
      • 코딩애플 (0)
      • 문법 (1)
    • React (0)
      • 코딩애플 (0)
    • HTML (0)
      • 모던 웹을 위한 HTML5+CSS3 바이블 (0)
    • CSS (0)
      • 모던 웹을 위한 HTML5+CSS3 바이블 (0)
    • Linux (0)
    • Git & GitHub (2)
      • Git (1)
    • CS (19)
      • 네트워크 (6)
      • HTTP (7)
      • 컴퓨터구조 (0)
      • 자료구조와 알고리즘 (2)
      • 기타 (4)
    • 개발설정 (2)
    • 기술면접 (0)
      • JAVA (0)
      • Spring (0)
      • DB (0)
      • 네트워크 (0)
      • 공통 (0)
    • 프로젝트 (2)
      • 게시판만들기 (2)
    • 기혁씨의 삽질표류기 (28)
    • 참고자료 (2)
      • 국비수업 (0)
      • 당당 프로젝트 (1)
    • 뉴렉처 (17)
      • 자바 (11)
      • 자바스크립트 (3)
      • 키워드 (0)
      • 숙제 (0)
      • CSS (0)
      • DB (3)
      • 서블릿 (0)
      • 스프링 (0)
      • DOM (0)
    • 내가 만든 학습그림 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 연습문제
  • 개발자
  • 오류
  • 코딩
  • 네트워크
  • 쿼리
  • 웹프로그래밍
  • 오라클
  • SQL
  • 스프링
  • 국비수업
  • Oracle
  • 객체지향
  • 알고리즘
  • Java
  • db
  • It
  • 서브쿼리
  • 공부
  • 프로그래머스
  • 모두의네트워크
  • 자바
  • 자바의정석기초편
  • 에러
  • 백엔드
  • 배열
  • 뉴렉처
  • 백준
  • 자바의정석
  • spring

최근 댓글

최근 글

hELLO · Designed By 정상우.
각시탈코더
[조건문과 반복문] for문
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.