TIL: 스스로 이해한 것을 바탕으로 정리하였기에 오류가 있을 수 있습니다. 틀린 부분은 댓글로 알려주시면 감사하겠습니다.
반복문(Loop, Iteration)
프로그램 흐름을 제어하는 제어문 중 하나
실행코드를 반복적으로 수행시켜준다.
크게 for문과 while문으로 나뉜다
for문
for( 초기식; 조건식; 증감식 ) {
반복적으로 실행시키고자 하는 코드 ;
}
- 초기식 : 반복문이 시작될 때 선언되는 초기값
보통 반복문에서 사용될 변수를 선언 및 초기화 구문 ex) int i = 0;
- 조건식 : 반복문에서 반복적으로 수행될 조건
조건식이 true일 경우 반복문 실행 => false가 되는 순간 멈추고 빠져나온다
(보통 초기식에서 제시한 변수를 가지고 조건식을 작성한다) ex) i < 10; (i가 10보다 작을 때까지 수행하겠다.)
- 증감식 : 반복문을 제어하는 변수 값을 증감시키는 구문
(보통 초기식에 제시한 변수를 가지고 증감식을 작성함) ex) i++
for문을 만나는 순간
초기식 --> 조건식에서 조건 검사 --> true일 경우 코드 실행 --> 증감식
--> 조건식에서 조건 검사 --> true일 경우 코드 실행 --> 증감식
--> 조건식에서 조건 검사 --> true일 경우 코드 실행 --> 증감식
-------------- true가 false가 될 때까지 계속 반복 -----------------
--> 조건식에서 조건 검사 --> false일 경우 코드 종료 --> 반복문을 빠져나온다.
예시 코드로 자세하게 알아보자
예시 코드 1) "안녕하세요"를 5번 출력하기
System.out.println("안녕하세요");
System.out.println("안녕하세요");
System.out.println("안녕하세요");
System.out.println("안녕하세요");
System.out.println("안녕하세요");
-> 100번 반복해야 한다면? 10000번 반복해야 한다면?
계속해서 복사&붙여넣기를 할 수 없기에 효율적으로 반복문을 사용해주는 것이다.
for (int i = 1; i <= 5; i++) {
System.out.println("안녕하세요");
}
i값이 1"에서부터" ; 5보다 작거나 같을"때까지" ; 매번 1씩 증가"할 동안" 반복을 수행한다.
int i = 1; => 조건 검사 ( 1이니 5보다 작아서 true) => 코드 출력 => 증감(1 + 1)
=> 조건 검사 (2는 5보다 작으니 true) => 코드 출력 => 증감(2+1) => 조건 검사.. 5번 반복...
=> 조건 검사 (6이 됐을 때 5보다 크니 false) => 반복문 종료
예시 코드 2) 누적해서 더하고자 하는 값을 출력하기
int sum = 0;
for( int i = 1; i<=10; i++) {
sum += i ;
}
System.out.println( " 1에서부터 10까지의 총합계: " + sum ) ;
예시 코드3) 인덱스 별 한 문자를 각각 뽑아서 출력
//사용자에게 문자열을 입력받아서
//각 인덱스 별 한 문자를 매번 뽑아서 출력
ex.) " apple " -> a p p l e
String str = " apple ";
a --> str.charAt(0); 출력
p --> str.charAt(1); 출력
p --> str.charAt(2); 출력
l --> str.charAt(3); 출력
e --> str.charAt(4); 출력
// apple 길이: 5 strawberry : 10 kiwi : 4
// 01234 인덱스: 4 0123456789 : 9 0123 : 3
마지막 인덱스수 == 길이-1
문자열의 길이 == 문자열.length( );
0번 인덱스 부터 마지막 인덱스(문자열.length()-1)까지 매번 1씩 증가할 때마다 반복 수행
각 문자열 출력
예시 코드 4) 구구단
printf 로도 출력이 가능하다
응용해서 2단부터 9단을 출력해보기
예시 코드 5) 별 찍기
for ( int i = 1 ; i <= 4 ; i++) {
for (int j = 1 ; j <= 5 ; j++) {
System.out.print( " * " ) ;
}
System.out.println( ) ;
}
바깥쪽은 행! 안쪽은 열! 이라고 보면 쉽다.
*****
*****
*****
*****
응용)
1***
*2**
**3*
***4
의 출력을 원할때
행과 열이 일치할 때 숫자가 출력
'Java' 카테고리의 다른 글
[Java] 제어문3_분기문? break;와 continue; 그리고 return; (0) | 2020.12.29 |
---|---|
[Java] 제어문2_반복문(while); while문과 do-while문 (0) | 2020.12.29 |
[Java] Math.random( ); 랜덤 숫자 불러오기와 .length( ); 문자열길이 (0) | 2020.12.28 |
[Java] 제어문1_조건문(switch); if문과는 비슷하지만 다른 switch문 (0) | 2020.12.24 |
[Java] 제어문1_조건문(if); 단독 if문과 if-else문, 그리고 if-else if문 (0) | 2020.12.23 |
댓글