본문 바로가기
Java/└ [JAVA] Practice

[실습문제] 중첩 반복문, 2차원 배열

by 박채니 2022. 4. 13.

안녕하세요, 코린이의 코딩 학습기 채니 입니다.

 

개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.


[2차원 배열]
@실습문제1
 - 구현내용 : 
    1. 3행 5열 2차원배열 선언 및 생성
    2. 1~100사이의 임의의 정수를 모든 방에 기록함
    3. 열의 값이 5의 배수인 경우만 값(행,열) 출력함

public void exercise1() {
	int[][] arr = new int[3][5];
		
	for(int i = 0; i < arr.length; i++) {
		for(int j = 0; j < arr[i].length; j++) {
			arr[i][j] = (int)(Math.random()*100+1);
			if(arr[i][j] % 5 == 0)
				System.out.printf("%d(%d,%d)\n", arr[i][j], i, j);
		}
	}
}

@콘솔출력값
10(0,1)
5(1,1)
20(1,2)
50(1,3)
85(2,0)


@실습문제2
 - 구현내용 : 
    1. 3행4열 2차원배열 선언 및 생성
    2. 0행0열부터 2행2열까지 1부터 100사이의 임의의 정수값 기록해 넣음
    3. 아래의 내용처럼 처리함
        0열    1열    2열    3열    
    0행    값    값    값     0행 값들의 합계
    1행    값    값    값    1행 값들의 합계
    2행    값    값    값    2행 값들의 합계

public void exercise2() {
	int[][] arr = new int[3][4];
		
	for(int i = 0; i < arr.length; i++) {
		int sum = 0;
		for(int j = 0; j < arr[i].length; j++) {
			if(i < 3 && j < 3) {
				arr[i][j] = (int)(Math.random()*100+1);
				sum+=arr[i][j];
			} else 
				arr[i][j] = sum;
		}
	}
		
	System.out.println("\t0열\t1열\t2열\t3열");
	for(int i = 0; i < arr.length; i++) {
		System.out.print(i + "행\t");
		for(int j = 0; j < arr[i].length; j++) {
			System.out.print(arr[i][j] + "\t");
		}
		System.out.println();
	}
}

@콘솔출력값
	0열	1열	2열	3열
0행	85	90	20	195	
1행	89	96	21	206	
2행	84	97	44	225

 

[중첩 반복문]

@실습문제3-1

정수하나 입력받아, 그 수가 양수일때만 입력된 수를 행 수로 적용하여 다음과 같이 출력되게 하는 프로그램을 만들어보자.

출력예)

정수 하나 입력 : 5

1
12
123
1234
12345

출력예)
정수 하나 입력 : -5
양수가 아닙니다.

public void test1() {
	Scanner sc = new Scanner(System.in);
	System.out.print("> 정수 하나 입력 : ");
	int input = sc.nextInt();
		
	//조기리턴
	if(!(input >= 0)) {
		System.out.println("양수가 아닙니다.");
		return;
	}
		
	for(int i = 0; i < input; i++) {
		for(int j = 0; j <= i; j++) {
			System.out.print(j+1);
		}
		System.out.println();
	}
}
    
@콘솔출력값
> 정수 하나 입력 : 5
1
12
123
1234
12345

 

@실습문제 3-2

정수하나 입력받아, 그 수가 양수일때만 입력된 수를  행수로 적용하여 다음과 같이 출력되게 하는 프로그램을 만들어보자.
    
출력 예)
정수 입력 : 5

*****

****

***
**

*

 

출력예)
정수 입력 : 0
양수가 아닙니다.

public void test2() {
	Scanner sc = new Scanner(System.in);
	System.out.print("> 정수 입력 : ");
	int input = sc.nextInt();
		
	//조기리턴
	if(input <= 0) {
		System.out.println("양수가 아닙니다.");
		return;
	}
		
	for(int i = 0; i < input; i++) {
		for(int j = input; j > i; j--) {
			System.out.print("*");
		}
		System.out.println();
	}
}

@콘솔출력값
> 정수 입력 : 5
*****
****
***
**
*

 

@실습문제 3-3

정수하나 입력받아, 그 수가 양수일때만 입력된 수를 줄 수로 적용하여 다음과 같이 출력되게 하는 프로그램을 만들어보자.
출력 예)
정수 입력 : 5
   

*
**
***
****
*****
   ****
      ***
         **
            *

public void test3() {
		Scanner sc = new Scanner(System.in);
		System.out.print("> 정수 입력 : ");
		int input = sc.nextInt();
		
		if(input <= 0) {
			System.out.println("양수가 아닙니다.");
			return;
		}
		
		//상단부
		for(int i = 0; i < input; i++) {
			for(int j = 0; j <= i; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
		
		//하단부
		for(int i = 0; i < input-1; i++) {
			//공백
			for(int j = 0; j <= i; j++) 
				System.out.print(" ");
			//별찍기
			for(int k = input-1; k > i; k--) {
				System.out.print("*");
			}
			System.out.println();
		}
	}

@콘솔출력값
> 정수 입력 : 5
*
**
***
****
*****
 ****
  ***
   **
    *

 

[별찍기]

*****
****
***
**
*

int row = 5;
		
for(int i = 0; i < row; i++) {
	for(int j = row; j > i; j--) {
		System.out.print("*");
	}
	System.out.println();
}

@콘솔출력값
*****
****
***
**
*

 

*
**
***
****
*****

int row = 5;
		
for(int i = 0; i < row; i++) {
	for(int j = 0; j <= i; j++) {
		System.out.print("*");
	}
	System.out.println();
}

@콘솔출력값
*
**
***
****
*****

 

        *
      **
    ***
  **** 
*****

int row = 5;
		
for(int i = 0; i < row; i++) {
	//공백
	for(int j = row-1; j > i; j--) {
		System.out.print(" ");
	}
	//별
	for(int k = 0; k <= i; k++) {
		System.out.print("*");
	}
	System.out.println();
}

@콘솔출력값
    *
   **
  ***
 ****
*****

 

       *     
     ***    
    *****   
  *******  
*********

int row = 5;
		
for(int i = 0; i < row; i++) {
	//공백
	for(int j = row-1; j > i; j--) {
		System.out.print(" ");
	}
	//별
	for(int k = 0; k < i*2+1; k++) {
		System.out.print("*");
	}
	System.out.println();
}

@콘솔출력값
    *
   ***
  *****
 *******
*********

 

*****
    ***
        *

int row = 5;
		
for(int i = 0; i < row/2+1; i++) {
	//공백
	for(int k = 0; k < i*2; k++) {
		System.out.print(" ");
	}
	//별
	for(int j = row; j > i*2; j--) {
		System.out.print("*");
	}
	System.out.println();
}

@콘솔출력값
*****
  ***
    *

 


       *
    ***

*****
    ***         
        *  

int row = 5;
		
//상단부
for(int i = 0; i < row/2; i++) {
	//공백
	for(int k = row-1; k > i*2; k--) {
		System.out.print(" ");
	}
	//별
	for(int j = 0; j < i*2+1; j++) {
		System.out.print("*");
	}
	System.out.println();
}
		
//하단부
for(int i = 0; i < row/2+1; i++) {
	//공백
	for(int j = 0; j < i*2; j++) {
		System.out.print(" ");
	}
	//별
	for(int k = row; k >= i*2+1; k--) {
		System.out.print("*");
	}
	System.out.println();
}

@콘솔출력값
    *
  ***
*****
  ***
    *

 

    *  
  *** 
*****
  *** 
    * 

int row = 5;
		
//상단부
for(int i = 0; i < row/2; i++) {
	//공백
	for(int j = row/2; j > i; j--) {
		System.out.print(" ");
	}
	//별
	for(int k = 0; k < i*2+1; k++) {
		System.out.print("*");
	}
	System.out.println();
}
		
//하단부
for(int i = 0; i < row/2+1; i++) {
	//공백
	for(int j = 0; j < i; j++) {
		System.out.print(" ");
	}
	//별
	for(int k = row; k > i*2; k--) {
		System.out.print("*");
	}
	System.out.println();
}

@콘솔출력값
  *
 ***
*****
 ***
  *

'Java > └ [JAVA] Practice' 카테고리의 다른 글

UML  (0) 2022.04.13
[실습문제] 배열  (0) 2022.04.13
[실습문제] 반복문, 분기문  (0) 2022.04.11
[실습문제] switch, for문  (0) 2022.03.15
[실습문제] 난수, 조건문  (0) 2022.03.10