본문 바로가기

BackEnd/Java

8/10 JAVA - FOR 반복문 , 누적

728x90
반응형

/*
 * 
 * 반복문
 * - 특정 조건에 따라 지정된 범위의 문장들을 반복 실행하는 문
 * - for문, while문으로 구분됨 
 * 
 * 1. for문
 * - 가장 기본적인 반복문
 * - 반복 횟수가 정해져 있는 경우에 주로 사용 
 * - 초기식, 조건식, 증감식의 위치가 정해져 있어, 초보자가 익히기 쉬움 
 * - 초기식 : 반복 횟수를 판별하기 위한 조건식에 사용 될 
 *   제어변수를 선언하거나 초기화하는 문장  
 * - 조건식 : 반복 여부를 결정하기 위한 조건식 
 *   => if 문과 마찬가지로 true 일 때 블록 내의 문장을 실행하고
 *  false 일 때 for 문을 종료하고 빠져나감 
 * - 증감식 : 반복을 위한 조건식에 맞춰 초기식에서 초기화한 제어변수들 
 *   증가 또는 감소시키는 문장 
 *
 * <기본 문법>
 * for(초기식; 조건식; 증감식) {
 * // 조건식 결과가 true 일 때 반복 실행 할 문장들...
 * }
 *
 */    

// " x : Hello, World" 문자열을 10번 반복 출력 (x는 현재 반복 횟수 )
System.out.println("1 : Hello, World");
System.out.println("2 : Hello, World");
System.out.println("3 : Hello, World");
System.out.println("4 : Hello, World");
System.out.println("5 : Hello, World");
System.out.println("6 : Hello, World");
System.out.println("7 : Hello, World");
System.out.println("8 : Hello, World");
System.out.println("9 : Hello, World");
System.out.println("10 : Hello, World");

System.out.println("----------------------");

//위의 10개의 출력문을 반복문(for)을 사용하여 압축
// => 10번 반복을 위해서 제어변수 i 가 1부터 10이하일 동안
//   1씩 증가하면서 출력문을 반복 실행
// => 초기식 : 제어변수 i 를 선언하고 초기값인 1로 초기화(int i=1)
//   조건식 : 제어변수 i 가 10이하일 때 true 조건(i<=10)
//   증감식 : 제어변수 i 를 1씩 증가 (i++ 또는 ++i)

int i;  //for문보다 위에 위치하므로 for문 종료후에도 유지됨
for(i = 1;i <= 10; i++) {
// 조건식 결과가 true 일 때 실행 할 문장 
System.out.println(i + " : Hello, World");
}


System.out.println("for문 종료 후 i값 = " + i);
// => 오류 발생! i cannot be resolved to a variable.
// => 제어변수 i 는 for문에서 선언된 변수이므로
//    for 문의 블록{}이 끝나면 사용 불가능한 변수 (존재하지 않음)
// => 따라서, 제어변수 i를 for문 종료 후에도 사용하려면 
//   최소한 for문 보다 윗쪽(앞쪽)에서 선언해야 한다!

 

/*
 * 위의 for 문에 대한 디버깅(Debugging)
 * -------------------------------------------------------------------------
 * 초기식(i)  조건식(i<=10) 실행결과(i + "Hello, World") 증감식(i++)
 * -------------------------------------------------------------------------
 * 1 true 1 : Hello, World 출력 1 -> 2
 * 2 true 2 : Hello, World 출력       2 -> 3
 * 3 true 3 : Hello, World 출력  3 -> 4
 * 4 true 4 : Hello, World 출력 4 -> 5
 * 5 true 5 : Hello, World 출력 5 -> 6
 *  6 true 6 : Hello, World 출력 6 -> 7
 * 7 true 7 : Hello, World 출력 7 -> 8
 * 8 true 8 : Hello, World 출력 8 -> 9
 * 9 true 9 : Hello, World 출력 9 -> 10
 * 10 true 10 : Hello, World 출력 10 -> 11
 * 11 false for문을 빠져나감
 */

 

System.out.println("===========================");
		
		// 제어변수 i가 1~10까지 1씩 증가하면서 i값 출력
		// => 출력 예시 : 1 2 3 4 5 6 7 8 9 10 
//		for(초기식;조건식;증감식) {
//			수행할 문장; 
			
		
		for(i = 1; i <= 10; i++) {
			System.out.println(i);

1

2

3

4

5...

 

*int가 2개 있으면 중복이라 안나옴 

 

		for(i = 1; i <= 10; i++) {
			System.out.print(i + " ");

1 2 3 4 5 6 7 8 9 10 

 

	System.out.println(); //줄바꿈 역할
	System.out.println("----------------------------");
		//제어변수 i가 1 ~ 10까지 2씩 증가하면서 i 값 출력(홀수 출력)
		// => 1 3 5 7 9 
        for(i=1;i<=10;i+=2) {
 		System.out.print(i + " ");
		}
		
		//제어변수 i가 2~10까지 2씩 증가하면서 i값 출력 (짝수 출력)
		// => 2 4 6 8 10
		for(i=2;i<=10;i+=2) {
			System.out.print(i + " ");

i=i+2 해도 되지만 

i+=2 로 하면 됨 

 

		//제어변수 가 10~1까지 1씩 감소하면서 i값 출력(역순으로 출력)
		// 10 9 8 7 6 ... 1 
		
		for(i=10;i>=1;i--) {
			System.out.print(i + " ");

 

	int dan = 2;
	int i = 1;
	for(i=1; i<=9;i++) {
			System.out.print(dan * i + " ");
	int dan = 2;
	int i = 1;

	System.out.println(" <dan + 단>");
	System.out.println(" < " + dan + " 단 >");
	System.out.printf(" <%d단 > ", dan);
	System.out.println("2");
	
	System.out.println(dan + "*" + i + "=" + (dan*i)); // dan = 2 , i = 1
	i++; // 1 -> 2 
	System.out.println(dan + "*" + i + "=" + (dan*i)); // dan = 2 , i = 2 
	i++; // 2 -> 3
	System.out.println(dan + "*" + i + "=" + (dan*i)); // dan = 2 , i = 3 
	i++; // 3 -> 4

	for(i=1; i<10;i++) { // 조건식 : i <= 9 
//		System.out.println(dan + "*" + i + "=" + (dan*i));
		System.out.printf("%d * %d = %d\n", dan,i,(dan*i));

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

 

 

누적 계산 

 

		
		//1~5까지 합을 계산하여 변수에 저장 후 출력
		
		int num = 1; // 합계에 누적 될 변수 (1~5까지의 숫자)
		int sum = 0; // 합계를 누적할 변수 
		sum = sum + num; // sum + num 의 결과를 다시 변수 sum에 저장
		// => sum = 0, num = 1 
		num++; // num = 1 -> 2 변경 
		sum = sum + num; //sum + sum 의 결과를 다시 변수 sum 에 저장 
		// => sum = 1 + 2 = 3
		num++; // num = 2 -> 3 변경
		sum = sum + num; //sum + sum 의 결과를 다시 변수 sum 에 저장 
		// => sum = 3 + 3 = 6
		num++; // num = 3 -> 4 변경 
		sum = sum + num; //sum + sum 의 결과를 다시 변수 sum 에 저장 
		// => sum = 6 + 4 = 10
		num++; // num = 4 -> 5 변경
		sum = sum + num; //sum + sum 의 결과를 다시 변수 sum 에 저장 
		// => sum = 10 + 5 = 15 
		num++; // num = 5 -> 6 변경
		System.out.println("sum의 값 : " + sum);
		System.out.println("num의 값 : " + num);
		
		
		//1~10까지의 1씩 증가하는 정수의 합(total)을 계산 후 출력 
		int total = 0; // 누적 변수 선언 및 초기화 
		
		for(int i = 1;i<=10;i++) { // 1~10까지 1씩 증가하면서 반복 
			// 누적변수에 현재 값 i 를 누적 
			total += i; // total = total + i
			System.out.println("i = " + i+ ", total = " + total);
			
		}
		
		System.out.println("i~10까지 정수 합 : " + total);


반복문을 사용한 연산의 누적 (ex. 합계 계산 등)


1. 연산을 누적할 누적 변수 선언 및 초기화(반복문보다 먼저 수행)
2. 반복문을 사용하여 특정 횟수 반복 
3. 반복문 내에서 특정 연산(데이터)을 누적 변수에 누적
4. 반복문 종료 후 누적 변수 사용(출력)

 

 

정수 1 ~ 100 까지의 합을 누적 변수 total 에 누적 후 출력 
누적변수 선언 및 초기화 

for 문 
누적 변수 출력 

 

 int total = 0;
 for(int i =1;i<=100;i++) {
 
 total+=i;

 }
System.out.println("i~100까지 정수 합 : " + total);
}

total 에 i 값을 누적 후 누적 변수 출력 

 

=> 1~10까지 1씩 증가하면서, 정수 중 짝수의 합만 계산 
누적 변수 선언 및 초기화

 


[for문 생성] 

 

 for(초기식;조건식;증감식) {
 짝수일 경우에만 누적변수에 현재 값을 누적 
 짝수를 판별 
 if(짝수) {
 누적변수에 누적
 } else { //짝수가 아닐 때 (=홀수일 때)
 홀수이므로 누적하지 않는다는 내용 출력

 

 

1~10까지 정수 중 짝수의 합 출력
 
		int total = 0;
		for(int i =1;i<=10;i++) {
			if((i%2==0)){
				total+=i;
			} else {
				System.out.println(i+"는 짝수가 아님");
		}
		
		System.out.println("i~10까지 짝수 합 : " + total);

 

		int total = 0;
		for(int i =1;i<=10;i++) {
			if((i%2==0)){ //짝수를 판별
				//짝수 일때 누적 수행 
				total +=i;
				System.out.println("i =" + i + ", total = " + total);
			} else {
				System.out.println(i+"는 짝수가 아님");
                
                		}
		
	}
		System.out.println("1~10까지 정수 중 짝수의 합 : " + total);

 

결과 => 

1는 짝수가 아님
i =2, total = 2
3는 짝수가 아님
i =4, total = 6
5는 짝수가 아님
i =6, total = 12
7는 짝수가 아님
i =8, total = 20
9는 짝수가 아님
i =10, total = 30

1~10까지 정수 중 짝수의 합 : 30

 

 

1~10까지 정수 중 홀수 의 합 

 


		
		int total = 0;
				for(int i=1;i<=10;i++) {
				if(i%2==1) { //if(i%2==1) 도 가능 
					total+=i;
					System.out.println("i =" + i + ", total =" + total);	
				}else { //홀수가 아닐 때 즉, 짝수 일 때 
					System.out.println(i + " : 는 홀수가 아님");
				}
			}
		System.out.println("1~10까지 정수 중 홀수의 합 : " + total);

 

728x90
반응형