[Java] 반복문 (for) 예제
Java 반복문
for문
- For (초기값 ; 반복조건; 증감) ~ ```java // 1 ~ 10 까지 출력 for (int i = 1 ; i <= 10; i++) System.out.println( i );
// 10 ~ 1 까지 출력 for (int i = 10 ; i > 1; i–) System.out.println(i)
- 변형된 for
```java
int i = 1 ; // 초기값
for ( ; i <= 10 ; i ++ )
int i = 1; // 1. 초기값
for ( ; ; ) { // 무한 반복 - > while(true) { ~ }
if ( ! (i <= 10)) break ; -> i 가 10보다 크다 // 2. 반복 조건
System.out.println( i ++ ) ; // 3. 처리
// i++; // 4. 증감
}
- 연산을 하는 앞 쪽의 변수와 저장되는 변수가 같으면 연산되는 변수를 생략할 수 있다.
- 연산자는 = 앞에 위치시킨다.
int a = 10 ; a = a + 10 ; // a += 10 ; 같은 문장 String str = "자바" ; str = str + "입니다." ; // str += "입니다."; 같은 문장
반복문 예제 (for문)
// 1 ~ 10 까지 출력
public class PrintFrom1to10Example {
public static void main(String[] args) {
// 1 부터 10 까지 출력하세요.
// 규칙은 + 1 ; 1 - 초기값, 10 - 크면 멈춘다.
// for(초기 값; 반복 조건; 증감) 한개 처리; 여러개는 중괄호{}
// for( 1 ; 2 ; 4 ) 3 --> 옆에 순서 대로 처리 된다.
// i = 1, 2, 3, 4 ... 9, 10, 11까지 증가 되지만 조건이 맞지 않아 버려짐.(for 문 빠져나옴)
// i++; -> i = i + 1;, i += 1
for(int i = 1 ; i <= 10 ; i++) { // i 는 for 문 안에서 선언되었기 때문에 for 문이 끝나는 순간 i 는 사라짐.
System.out.print(i + " ");
} // for 문 종료
System.out.println("");
// 홀수 출력 : 1 ~ 10 사이의 데이터 : 1 3 5 7 9 -> 초기값 : 1, 증감 : +2
// 홀수 계산 if (i % 2 !== 0)
for(int i = 1 ; i <= 10 ; i += 2) { // i 는 for 문 안에서 선언되었기 때문에 for 문이 끝나는 순간 i 는 사라짐.
System.out.print(i + " ");
} // for 문 종료
System.out.println("");
// 짝수 출력 : 2 ~ 10 사이의 데이터 : 2 4 6 8 10 -> 초기값 : 2, 증감 : +2
for(int i = 2 ; i <= 10 ; i += 2) { // i 는 for 문 안에서 선언되었기 때문에 for 문이 끝나는 순간 i 는 사라짐.
System.out.print(i + " ");
} // for 문 종료
System.out.println("");
System.out.println("for 문 종료.");
// i++, ++i - 단독으로 사용되면 i = i + 2
int num = 1;
System.out.println(num++); // 1
System.out.println(num); // 2
// 선 증가 후 출력
num = num + 1; // 3
System.out.println(num); // 3
// 후 증가 선 출력
System.out.println(num); // 3
num = num + 1; // 4
// 선 증가 후 출력
System.out.println(++num); // 5
// 후 증가 선 출력
System.out.println(num++); // 5
System.out.println(num); // 6
// num = 6
System.out.println("" + (num++) + "," + (++num)+ "," + (++num)); // 6, 8, 9
// for 문의 여러가지 형태
// 초기화를 밖에서 할 수 있따.
int i =1; // 1. 초기화 - 한번만 해야하므로 for 앞에 처리하ㅔ 된다.
for (; i <= 10 ; i++) System.out.println("for문 밖의 i : " + i);
i = 1; // 1. 초기값
for(;;) { // 무한 반복
// 2. 반복 처리 결정 조건문 = 조건에 만족하면 for 문을 빠져 나간다.
if (i > 10) break;
// 3. 처리
System.out.println(i);
// 4. 증감
i++;
} // for 문 종료
// 초기 값에 여러개 변수 저장 가능
for(int j = 1, k = 2; j <= 10; j = j + 2, k = k + 2) {
System.out.println("j = " + j + ", k = " + k);
} // for 문 종료
// 같은 타입의 변수 선언과 데이터 세팅을 ", " 를 이용해서 같이 할 수 있다.
int id = 10, age = 40;
String name, address;
} // main() 종료
} // class 종료
배열 반복문(for문)
package ch04condition;
// 데이터 - 70, 100, 50, 80 : 규칙이 없다. : 처리하기 위해서 배열 데이터로 작성 - 0 ~ 3
public class ArrayForExample {
public static void main(String[] args) {
// 배열 변수(참조형) 선언 + 초기화
// -> new int[4]; 데이터를 저장; -> 배열을 선언하면 데이터 지장 {} 사용
// 배열을 설정할 때는 타입 [ ] '변수 이름' = { 변수에 대입할 데이터 나열 }
// : 나열된 데이터는 메인 메모리에 index(위치정보)를 가지고 있음.
int[] scores = {70, 100, 50, 80, 90}; // index : 0 ~ 3
for(int i = 0; i <= 3; i++) System.out.println(scores[i]);
System.out.println("--1");
// 배열에는 length = 4와 index 0 ~ 3; -> index는 length 보다 작은 경우 처리
for(int i = 0; i < scores.length; i++) System.out.println(scores[i]);
System.out.println("--2");
// 배열인 경우 모든 데이터를 처리하려고 하면 "향상된 for 문" = "foreach"
// int = score 변수 선언, : scores에서 데이터를 한개씩 꺼내서 score에 대입한다.
for (int score : scores) {
System.out.println(score);
}
}
}
for문을 이용한 배열 테스트
package ch04condition;
/**
* 1. 1 부터 10 까지 출력하는 프로그램 작성 (for 문)
* 2. 80, 70, 95, 100 의 데이터를 모두 출력하는 프로그램 작성 (배열을 이용한 for 문)
* 1) index와 length를 사용하는 방법
* 2) 향상된 for(=foreach)를 사용하는 방법
*/
public class PrecticeFor {
public static void main(String[] args) {
// 예제 1. 1 부터 10 까지 출력하는 프로그램 작성 (for 문)
System.out.println("예제 1. 1 부터 10 까지 출력하는 프로그램 작성 (for 문)");
for(int i = 0; i <= 10; i++) {
System.out.print(i + " ");
System.out.println();
}
// 예제 2. 80, 70, 95, 100 의 데이터를 모두 출력하는 프로그램 작성 (배열을 이용한 for 문)
int [] scores = {80, 70, 95, 100};
System.out.println("예제 2. 80, 70, 95, 100 의 데이터를 모두 출력하는 프로그램 작성 (배열을 이용한 for 문)");
for(int i = 0; i < 3; i++) {
System.out.print(i + " ");
System.out.println();
}
// 예제 2-1. index를 활용한 방법
System.out.println("예제 2-1. index를 활용한 방법");
for(int score : scores) {
System.out.print(score + " ");
System.out.println();
}
// 예제 2-1. length를 사용한 방법
System.out.println("예제 2-1. length를 사용한 방법");
for(int score : scores) {
System.out.print(score + " ");
System.out.println();
}
// 예제 2-2. foreach 문을 사용한 방법
System.out.println("예제 2-2. foreach 문을 사용한 방법");
for(int score : scores) {
System.out.print(score + " ");
}
}
}
중첩된 for문
- 구구단 Multiplication Table Example - 줄바꿈 (3의 배수를 %를 활용) ```java package ch04condition;
// 중첩된 for 문
// 구구단 - 2단 ~ 9단 -> for 문의 반복 변수 - i , j , k … 보편적 // 2 * 1 = 2 // … // 2 * 9 = 18 // 3 * 1 = 3 // … // 3 * 9 = 27 // … // 9 * 9 = 81 public class MultiplicationTableExample { public static void main(String[] args) {
// 단에 해당되는 처리 : 2 ~ 9
// 반복문 생성 for ( 변수 선언 m = 2(부터 시작); m 이 9 보다 작거나 같을 때 까지; m 증가)
for (int i = 2; i <= 9; i++) {
// 곱해지는 수 : 1 ~ 9
for (int j = 1; j <= 9; j++) {
// i = 2, j = 1 ... i = 2, j = 9 / i = 3, j = 1 ... i = 3, j = 9 ...
System.out.print(i + " * " + j + " = " + (i * j));
// 3열마다 줄 바꿈
if (j % 3 == 0) {
System.out.println();
} else {
System.out.print(" ");
} // end of if() - 3개 줄바꿈
} // end of for - 곱해지는 숫자 : j
System.out.println(); // 단수가 바뀔 때 줄 바꿈.
} // end of for - 단수 : i
} // end of main() } // end of class ```