2024.04.16

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 ```

태그:

카테고리: ,

업데이트: