java/java 게시판 만들기

게시판 만들기 1일차 "게시물 작성 기능 추가"

Nubbie 2023. 3. 14. 00:11

 

package com.KoreaIT.java.AM;

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

System.out.println("==프로그램 시작==");

Scanner sc = new Scanner(System.in);

int lastArticleId = 0;

while (true) {

System.out.print("명령어 > ");

String command = sc.nextLine();

if (command.length() == 0) {

System.out.println("명령어를 입력해주세요");

continue;

}

if (command.equals("exit")) {

break;

}

if (command.equals("article list")) {

System.out.println("게시글이 없습니다");

} else if (command.equals("article write")) {

int id = lastArticleId + 1;

System.out.print("제목 : ");

String title = sc.nextLine();

System.out.print("내용 : ");

String body = sc.nextLine();

System.out.printf("%d번글이 생성되었습니다\n", id);

lastArticleId++;

} else {

System.out.println("존재하지 않는 명령어입니다");

}

}

System.out.println("==프로그램 끝==");

sc.close();

}

}

 

 

뭔가 늘어났다. 하지만 틀은 비슷하다 여전히 명령어 입력 프로그램을 실행중이고

아까는 명령어에 아무리 무엇을 쳐도 의미가 없었다면 지금은 "article list"와 "article write" 기능을 추가 해놓은 것이다

 

if (command.length() == 0) {

System.out.println("명령어를 입력해주세요");

continue;

명령어를 아무것도 입력하지 않았을 경우 "명령어를 입력해주세요" 를 출력한 뒤

continue로 다시 처음 반복문으로 돌아가는것이다

 

if (command.equals("article list")) {    //만약에 article list라는 명령어를 쳤을경우

System.out.println("게시글이 없습니다");  //일단은 이게 출력되게 해본다. 아직 나의 목적은 무언가가 실행 되기만 하면 된다

} else if (command.equals("article write")) { //그게아닌 article write 명령어를 썼다면

int id = lastArticleId + 1;  //오직 정수만 들어갈 수 있는 변수 id를 lastArticleId에 1을 더하여 해나가겠단 뜻이다

System.out.print("제목 : ");  //print 로 println과 다르게 일렬 출력이 아닌 줄바꿈 출력을 하게 될것이고

String title = sc.nextLine(); //스캐너 타입은 String이라 sc.nextLine();으로 받고있다

System.out.print("내용 : "); //제목과 같다

String body = sc.nextLine(); //제목과 같다

System.out.printf("%d번글이 생성되었습니다\n", id); // printf %d를 하게되면 저장해놓은 변수값이 출력 된다 

lastArticleId++; //그리고 그건 반복문을 실행해 나갈 때 마다 1씩 증가할것이다 ex)1번글이 생성 되었습니다,2번글이...

 

그리고 중요한 점은 반복문 밖에 변수를 선언해야 한다.

int lastArticleId = 0; 를 저장해둬야 반복문을 시행 할 때 마다 초기화 되는 걸 방지 할 수 있다

안그러면 1번째 글만 생성된다는 메세지만 나올것이다