for문 이란?
정의 : 조건에 따라서 특정 실행문을 계속 반복적으로 수행 할 수 있도록 한다.
for문과 같은 반복문에는 while, do-while문이 있다.
for문은 지정된 횟수만큼 반복 처리하는 구문이다.
for문 구조
for(시작값 지정; 조건식; 증감식){
반복문장;
}
다음문장;
for문 예제구조
for(int i = 1; i < 11; i++){
System.out.println(i + "번째");
}
실행순서
시작값 지정식 -> 조건식 -> 참일경우 반복문장 실행 -> 증감식 실행 -> 조건식 -> 거짓일경우 for문 종료
몇번째 인지 출력을 할때 사용하는 예제이다.
i인 1부터 시작해서 i는 11미만까지 돌아야하고 11이 초과되면 i가 false가 된다.
반복문은 i가 false가 될때까지 계속 반복문이 돌기때문에 11이 되기전 10에서 반복문을 종료한다.
for문 실습 예제
1. 안녕하세요 5번 출력하기
int i = 0;
for(i = 0; i < 5; i++) {
System.out.println("안녕하세요.");
}
출력결과
안녕하세요.
안녕하세요.
안녕하세요.
안녕하세요.
안녕하세요.
해설
i가 0부터 시작해서 5미만까지 반복문이 돈다.
그래서 반복문이 한번 돌때마다
"안녕하세요"를 출력
2. 51부터 27까지 숫자를 출력(한줄로)
for(int i = 51; i >= 27; i--) {
System.out.print(i + " ");
}
출력결과
51 50 49 48 47 46 45 44 43 42 41 40 ........
3. 1에서 부터 100까지의 숫자주에서 3의 배수의 합을 구하기
1)
// sum = 합계
int sum = 0;
for(int i = 0; i <= 100; i+=3) {
sum += i;
}
System.out.println(sum);
이렇게 작성해도 되고
2)
// sum = 합계
int sum = 0;
for(int i = 0; i <= 100; i++) { // 2. 3의 배수 찾기
if(i % 3 == 0) {
sum += i;
}
}
해설
1)
1에서 부터 100까지반복문을 돌릴때 i를 복합대입 연산자를 이용해 3씩 증가하게 하면
3, 9, 12, 15... 3의 배수들이 sum에 합계가 저장이 된다.
출력하게 되면 1683의 값이 나오게 된다.
2)
1부터 100까지의 반복문을 돌리고 if문을 통해 i의 값을 나눈몫이 0일때 sum에 합계가 저장이 된다.
출력하게 되면 똑같이 1683의 값이 나오게 된다.
다중 for문
- for문을 겹처서 사용하는 구문이다.
for(int i=1; i<=5; i++){
for(int j=1; j<=i; j++){
System.out.print("*");
}
System.out.println("");
}
출력결과
*
**
***
****
*****
해설
첫번째 for문은 출력을 하기 위한 반복횟수이고
두번째는 별의 갯수를 순서대로 출력하기 위한 for문이다.
첫번째가 1일때, 두번째에 1이 되서 1번만 출력이 된다.
1이 증가하고 첫번째가 2일때, 두번째에 2가되서 2번만 출력이 된다.
이런식으로 반복문이 출력이된다.
주의사항
for(int i=1; i<=5; i++){
for(int j=1; j <= 5 ; j++){
이부분에서 위에 반복문의 i값이 아닌
5를 넣게 되면 아래 설명 처럼 된다.
System.out.print("*");
}
System.out.println("");
}
첫번째 반복문을 다 돌고 두번째 반복문을 돌때 i의 값을 넣었으면 i는 1이었기 때문에 1번만 반복하고
반복문을 빠져나와서 첫번째 반복문으로 가지만
5를 넣게 되면
첫번째 반복문을 다 돌고 두번째 반복문을 돌때 i=1부터 5까지 반복문을 실행하게 되기 때문에
출력결과는 이렇게 나오게 된다.
*****
*****
*****
*****
*****
이중 for문 실습 예제
1. 구구단 1~9단을 출력
for(int i = 2; i <= 9; i++) {
System.out.print(i + "단 : ");
for(int j = 1; j <=9 ; j++) {
System.out.print(i + "*" + j + "=" + i*j + "\t");
}
System.out.println();
}
결과 출력
2단 : 2*1=2 2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
3단 : 3*1=3 3*2=6 3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
4단 : 4*1=4 4*2=8 4*3=12 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
5단 : 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
6단 : 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 6*7=42 6*8=48 6*9=54
7단 : 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 7*8=56 7*9=63
8단 : 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 8*9=72
9단 : 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
해설
첫번째 반복문은 단수를 출력하기 위한 반복문 2단부터 시작하니까 2~9단까지
두번째 반복문이 다돌면 단수가 올라간다.
이런식으로 곱한값을 계속 출력