- 이중for / do-while / break; / 배열 / Math.random 이 모두 적용된 만능 응용예제!
- BINGO
import java.util.Scanner;
public class ArrEx16_Bingo {
public static void main(String[] args) {
final int SIZE=5;
int x=0, y=0;
int num=0;
int[][] bingo=new int[SIZE][SIZE]; //5*5 행열구조인 2차원 배열
//빙고 생성
Scanner scan = new Scanner(System.in);
//1~25까지 배열 원소값을 초기화
for(int i=0;i<SIZE;i++) {
for(int j=0;j<SIZE;j++) {
bingo[i][j]=i*SIZE+j+1;
}
}//outer for
//배열 원소값을 섞는다.
for(int i=0;i<SIZE;i++) {
for(int j=0;j<SIZE;j++) {
x=(int)(Math.random()*SIZE);
//random()매서드
y=(int)(Math.random()*SIZE);
int tmp=bingo[i][j];
bingo[i][j]=bingo[x][y];
bingo[x][y]=tmp;
}//inner for
}//outer for
do {
//1~25숫자가 랜덤으로 출력
for(int i=0; i<SIZE; i++) {
for(int j=0;j<SIZE;j++) {
System.out.printf("%2d ",bingo[i][j]);
}//inner for
System.out.println();
} //outer for
System.out.println();
System.out.printf("1~%d사이의 숫자 입력.(종료:0)>>",SIZE*SIZE);
num=Integer.parseInt(scan.nextLine());
outer://이중 for반복문 중단을 위한 레이블 명
for (int i = 0; i<SIZE; i++) {
for (int j = 0; j < SIZE; j++) {
if(bingo[i][j] ==num) {
bingo[i][j]=0;
break outer;
}//if
}//inner for
}//outer for
}while(num !=0);
scan.close();
}
}
실행 결과
더보기
25 14 17 3 1
19 6 12 16 9
13 20 21 4 11
18 7 5 22 8
23 24 10 15 2
1~25사이의 숫자 입력.(종료:0)>>
'language > Java' 카테고리의 다른 글
[실습] interface, static method, default method (0) | 2022.06.26 |
---|---|
ArrayList_List Collection (0) | 2022.06.23 |
2차원 배열(Array) (0) | 2022.06.21 |
배열(Array) (0) | 2022.05.30 |
do ~ while (0) | 2022.05.29 |