본문 바로가기
개발자/백엔드 웹 개발자 과정(국비)

2022년 11월 10일 _ 7회차(다중 for문)

by 초응 2022. 11. 10.

[다중 for문]

for(초기식;조건식;증감식){

       for(초기식;조건식;증감식){

        아들 for문의 조건이 참일때 실행할 구문;

}

아빠 for문의 조건이 참일때 실행할 구문;

}

 

1.for문 안에 자식for문을 하나 이상 포함해야하고 자식for문은 부모for문에 포함되어야 한다.

2. 부모 for문이 한 번 수행 될 때마다 자식 for문은 초기식 값부터 조건식에 만족하는 동안 반복 수행된다.

마지막으로 for문의 조건식이 거짓이면 for문을 빠져 나가게 된다.

 

다중 for문의 특징

1. 다중for문도 단일 for문이다.

2. 원형을 벗어나지 않는다.

3. 위치에 따라 역할이 달라진다. (위치에 따른 역할이 부여됨.)

ㄴ밖 - 아빠for문 : 그룹의 관리

ㄴ안-아들for문 : 데이터의 관리

 

 

#01. 소수 구하기

소수 = 1과 자신으로만 나눠지는 수.

그 안의 수들을 반복해서 나눠서 0이 되지 않으면 소수이다.

package day07;
import java.io.*;
public class Day07_01 {

	public static void main(String[] args) 
	throws IOException {

		BufferedReader br=
		new BufferedReader(new InputStreamReader(System.in));
		
			System.out.print("수 입력:");
			int num = Integer.parseInt(br.readLine());
			
			for(int i =2;i<num;i++) {
				if(num%i==0) {
					System.out.print(num+"은 소수가 아닙니다.");
								System.exit(0);
				}
			}
			System.out.print(num+"은 소수입니다.");
	}
}

 


#2. 1-2+3-4+5-6+7-8+9-10 구하기

 

package day07;

public class Day07_02 {

	public static void main(String[] args) {

		int sum = 0;
		
		for(int i =1;i<=10;i++) {
			System.out.print(i);
			if(i%2==0) {
				sum = sum-i;
				if(i!=10){
					System.out.print("+");					
				}
			}else {
				sum = sum+i;
				System.out.print("-");
			}
		}

		
			System.out.print("="+sum);//for문을 빠져나와서 sum값 구하기
	}

}

1.12345678910 출력하기

2. 그림상 짝수 뒤에 보이는 + / 홀수 뒤에 보이는 -

3. 실제 계산 시 짝수번에는 -로 계산 되게.


 

#3. 다중 for문 실습. 00000 출력하기

package day07;

public class Day07_03 {

	public static void main(String[] args) {
		
		for(int i =1;i<=5;i++) {
		System.out.println("O O O O O");
		}
		
		System.out.println("-----------------------");
		
	/*	for(int j =1;j<=5;j++) {
			for(int i =1;i<=j;i++) {
		System.out.print("O ");*/
		
	/*	for(int j =5;j>=1;j--) {
			for(int i =1;i<=j;i++) {
				System.out.print("O ");
		}
			System.out.println();
		}*/
		
		for(int j =1;j<=5;j++) {
			for(int i =j;i<=5;i++) {
				System.out.print("O ");
			}
			System.out.println();
		}
	}

}

#4. 다중 for문을 이용하여 왼쪽 그림과 같이 출력하기.

package day07;

public class Day07_04 {

	public static void main(String[] args){ 

		
			for(int j = 1;j<=5;j++) {
				for(int i=j;i<j+5;i++) {
			System.out.print(i); 
				 }
			System.out.println();
			}
		
		
		
	}
}

#5. 다중 for문을 이용하여 왼쪽 그림과 같이 출력하기

 

 

package day07;

public class Day07_05 {

	public static void main(String[] args) {
		

	/*	for(int j =5;j>=1;j--){	
			for (int i= j;i<=j+4;i++) {
			System.out.print(i);
			}
			System.out.println();
		}*/
		
		for(int j=0;j<5;j++) {
			for(int i= 5-j;i<=9-j;i++) {
				System.out.print(i);
			}
			System.out.println();

		}
		
	}

}

 


 

#6. 다중 for문을 이용하여 왼쪽 그림과 같이 출력하기

 

package day07;

public class Day07_06 {

	public static void main(String[] args) {
		
		
		for(int j=1;j<=10;j++) {
			int sum = 0;
			for(int i =1;i<=10*j;i++) {
			sum =sum+i;

			}

			System.out.println("1~"+j*10+"="+sum);
		}
	}

}