import java.util.Scanner;
public class BoardFirst {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // 문자열 입력을 위한 Scanner 생성
String[][] boardArr = new String[5][]; // 게시판 내용을 저장하기 위한 배열 (5개 게시물 내용만 저장할 수 있음.)
int boardArrCnt = 0; // 게시물 카운트
int seq = 1; // 게시물 번호
while(true) {
System.out.println("1. 등록 2. 전체조회 3. 선택조회 4. 수정 5. 삭제 0. 종료");
String choice = sc.next(); // 모드 선택
if(choice.equals("1")) {
System.out.println("등록란입니다.");
if(boardArrCnt >= boardArr.length) { // 배열 크기가 최대 일 때
System.out.println("더 이상 등록할 수 없습니다.");
}else {
String[] boardArrVar = new String[4]; // 등록할 입력 값 배열 선언
boardArrVar[0] = String.valueOf(seq); // 등록할 게시물 번호 추가
System.out.println(boardArrVar[0] + "번의 등록할 제목을 입력하세요.");
boardArrVar[1] = sc.next(); // 등록할 제목 입력
System.out.println(boardArrVar[0] + "번의 등록할 내용을 입력하세요.");
boardArrVar[2] = sc.next(); // 등록할 내용 입력
System.out.println(boardArrVar[0] + "번의 등록할 추가정보를 입력하세요.");
boardArrVar[3] = sc.next(); // 등록할 추가정보 입력
boardArr[boardArrCnt] = boardArrVar; // 등록 값 배열에 저장
System.out.println("등록완료되었습니다.");
seq++;
boardArrCnt++;
}
}else if(choice.equals("2")) {
System.out.println("전체조회입니다.");
if (boardArrCnt == 0) { // 등록된 값이 없을 때
System.out.println("등록된 값이 없습니다.");
}else {
for(int i=0; i < boardArrCnt; i++) {
System.out.println(boardArr[i][0] + "번에 등록된 내용은 다음과 같습니다.");
System.out.println("이름 = > [" + boardArr[i][1] + "] 내용 = > [" + boardArr[i][2] + "] 추가정보 = > [" + boardArr[i][3] + "]");
}
System.out.println("조회가 끝났습니다.");
}
}else if(choice.equals("3")) {
System.out.println("선택조회입니다.");
if (boardArrCnt == 0) { // 등록된 값이 없을 때
System.out.println("등록된 값이 없습니다.");
}else {
System.out.println("선택조회할 번호를 입력하세요.");
String searchVal = sc.next(); // 조회할 번호 입력
boolean searchBoo = false; // 조회 여부
for(int i=0; i < boardArrCnt; i++) {
if(boardArr[i][0].equals(searchVal)) { // 배열에 저장되어 있는 게시물 번호와 조회 값이 같을 때
System.out.println(boardArr[i][0] + "번의 값은 다음과 같습니다.");
System.out.println("이름 = > [" + boardArr[i][1] + "] 내용 = > [" + boardArr[i][2] + "] 추가정보 = > [" + boardArr[i][3] + "]");
searchBoo = true; // 조회 성공
break;
}
}
if(searchBoo==false) { // 조회 실패일 때
System.out.println("선택한 값은 없습니다.");
}
}
}else if(choice.equals("4")) {
System.out.println("수정란입니다.");
if (boardArrCnt == 0) { // 등록된 값이 없을 때
System.out.println("등록된 값이 없습니다.");
}else {
System.out.println("선택조회할 번호를 입력하세요.");
String searchVal = sc.next(); // 조회할 번호 입력
boolean searchBoo = false; // 조회 여부
for(int i=0; i < boardArrCnt; i++) {
if(boardArr[i][0].equals(searchVal)) { // 배열에 저장되어 있는 게시물 번호와 조회 값이 같을 때
System.out.println(boardArr[i][0] + "번의 값은 다음과 같습니다.");
System.out.println("이름 = > [" + boardArr[i][1] + "] 내용 = > [" + boardArr[i][2] + "] 추가정보 = > [" + boardArr[i][3] + "]");
System.out.println("수정이 시작됩니다.");
String[] boardArrVar = new String[4];
boardArrVar[0] = boardArr[i][0];
System.out.println(boardArrVar[0] + "번의 수정할 제목을 입력하세요.");
boardArrVar[1] = sc.next();
System.out.println(boardArrVar[0] + "번의 수정할 내용을 입력하세요.");
boardArrVar[2] = sc.next();
System.out.println(boardArrVar[0] + "번의 수정할 추가정보를 입력하세요.");
boardArrVar[3] = sc.next();
boardArr[i] = boardArrVar; // 수정 값 배열에 저장
System.out.println("수정이 완료되었습니다.");
searchBoo = true; // 수정 성공
break;
}
}
if(searchBoo==false) { // 조회 실패일 때
System.out.println("선택한 값은 없습니다.");
}
}
}else if(choice.equals("5")) {
System.out.println("삭제란입니다.");
if (boardArrCnt == 0) { // 등록된 값이 없을 때
System.out.println("등록된 값이 없습니다.");
}else {
System.out.println("선택조회할 번호를 입력하세요.");
String searchVal = sc.next(); // 조회할 번호 입력
boolean searchBoo = false; // 조회 여부
for(int i=0; i < boardArrCnt; i++) {
if(boardArr[i][0].equals(searchVal)) { // 배열에 저장되어 있는 게시물 번호와 조회 값이 같을 때
System.out.println(boardArr[i][0] + "번의 값은 다음과 같습니다.");
System.out.println("이름 = > [" + boardArr[i][1] + "] 내용 = > [" + boardArr[i][2] + "] 추가정보 = > [" + boardArr[i][3] + "]");
System.out.println("해당 값을 삭제하시겠습니까? Y[예] // N[아니오]");
String deleteChoice = sc.next(); // 삭제 여부 입력
if(deleteChoice.equals("Y")) { // 삭제 선택일 때
boardArr[i] = null; // 해당 선택값 null
boardArrCnt--; // 배열에 추가하기 위해 인덱스 번호 감소
for(int j=i; j < boardArrCnt; j++) { // 배열에서 삭제 선택 값 부터 저장되어진 최대값까지 반복
if(boardArrCnt == 0) { // 삭제 후 저장되어진 값이 없을 때
break;
}
boardArr[j] = boardArr[j+1]; // 삭제 후 로직 실행
boardArr[j+1] = null;
}
System.out.println("삭제완료되었습니다.");
}else { // 삭제 취소일 때
System.out.println("삭제가 취소되었습니다.");
}
searchBoo = true; // 조회 성공
break;
}
}
if(searchBoo==false) { // 조회 실패일 때
System.out.println("선택한 값은 없습니다.");
}
}
}else if(choice.equals("0")) {
System.out.println("종료되었습니다.");
break;
}else { // 모드 선택값이 없을 때
System.out.println("잘못선택하셨습니다.");
continue;
}
}
}
}