1교시 애플 고글
2교시
주석 막고 단순 입력
if문, 메서드 정의
if (menuNo.equals("6")) {
break;
}
문자열이랑 숫자랑 == 사용할 수 없음.
.equals() 사용해서 입력값 비교
3교시
java.lang.(패키지에 소속된 클래스를 사용할 땐 굳이 import 안 해도 됨)
Integer.parseInt() => 숫자로 된 문자열을 정수값으로 변환
for (int i = 0; i < length; i++) {
if (no[i] == Integer.parseInt(memberNo)) {
// i번째 항목에 저장된 회원정보 출력
return;
}
}
삼항연산자
//삼항연산자
int b = (5 < 4) ? 50 : 40;
System.out.println(b); //결과 = 40
if (no[i] == Integer.parseInt(memberNo)) {
System.out.printf("이름: %s\n", name[i]);
System.out.printf("이메일: %s\n", email[i]);
System.out.printf("성별: %s\n", gender[i] == 'M' ? "남성" : "여성");
return;
}
4교시
public static String toGenderString(char gender) {
return gender == 'M' ? "남성" : "여성";
}
public static void printGender(char gender) {
System.out.printf("성별: %s\n", gender == 'M' ? "남성" : "여성");
}
함수 그만하고 싶으면 return; 하면 됨
public static void inputMember() {
if (!available()) {
System.out.println("더 이상 입력할 수 없습니다!");
return;
}
public, private(기본은 감추기. 보수적으로)
private static boolean available() {
return length < MAX_SIZE;
} // 외부에서 import 하지 않는 메서드이기 때문에 public 취소하기,
private 붙이면 이 클래스 안에서만 쓸 수 있음
오후수업
1교시 2교시
name[i] = Prompt.inputString("");
public static void updateMember() {
String memberNo = Prompt.inputString("수정할 번호? ");
for (int i = 0; i < length; i++) {
if (no[i] == Integer.parseInt(memberNo)) {
System.out.printf("이름(%s)? >", name[i]);
name[i] = Prompt.inputString("");
System.out.printf("이메일(%s)? >", email[i]);
email[i] = Prompt.inputString("");
System.out.printf("비밀번호(%s)? >", password[i]);
password[i] = Prompt.inputString("");
System.out.printf("성별(%s): \n", toGenderString(gender[i]));
loop: while (true) {
String menuNo = Prompt.inputString("성별:\n " +
" 1. 남자\n " +
" 2. 여자\n " +
" >");
switch (menuNo) {
case "1":
gender[i] = MALE;
break loop;
case "2":
gender[i] = FEMALE;
break loop;
default:
System.out.println("무효한 번호 입니다");
}
}
return;
}
}
System.out.println("해당 번호의 회원이 없습니다.");
}
2교시
static 안 붙은 매서드는 (non static = instatnt 메서드) static 메서드를 불러 올 수 없다.
3교시
입력정보 삭제하기
빈값으로 만들기
no[length - 1] = 0;
name[length - 1] = null;
email[length - 1] = null;
password[length - 1] = null;
gender[length - 1] = (char) 0;
package bitcamp.personalapp.handler;
import bitcamp.util.Prompt;
public class DiaryHandler {
static final int MAX_SIZE = 100;
static int[] no = new int[MAX_SIZE];
static String[] date = new String[MAX_SIZE];
static String[] title = new String[MAX_SIZE];
static String[] weather = new String[MAX_SIZE];
static String[] contents = new String[MAX_SIZE];
static char[] coffee = new char[MAX_SIZE];
static int turn = 1;
static int length = 0;
static final char DRINK = 'O';
static final char NONCOFFEE = 'X';
public static void inputContents() {
if (!available()) {
System.out.println("더 이상 입력할 수 없습니다!");
return;
}
date[length] = Prompt.inputString("날짜 ?");
weather[length] = Prompt.inputString("날씨 ?");
title[length] = Prompt.inputString("제목 ?");
contents[length] = Prompt.inputString("내용 ?");
coffee[length] = inputCoffee((char) 0);
no[length] = turn++;
length++;
}
public static String toCoffeeString(char coffee) {
return coffee == 'O' ? "마심" : "안 마심";
}
private static char inputCoffee(char coffee) {
String label;
if (coffee == 0) {
label = "모닝커피? \n";
} else {
label = String.format("모닝커피(%s)?\n", toCoffeeString(coffee));
}
loop: while (true) {
String select = Prompt.inputString(label +
" 1. 마심\n"+
" 2. 안 마심\n"+
"> ");
switch (select) {
case "1":
return DRINK;
case "2":
return NONCOFFEE;
default:
System.out.println("1, 2 中 선택");
}
}
}
public static void printDiary(){
System.out.println("--------------------------------------------");
System.out.println("번호, 날짜, 날씨, 제목, 내용, 모닝커피 유무");
System.out.println("--------------------------------------------");
for (int i = 0; i < length; i++) {
System.out.printf("%d, %s, %s, %s, %s, %c\n", no[i], date[i], weather[i], title[i], contents[i], coffee[i]);
}
}
public static void viewDiary() {
String diaryNo = Prompt.inputString("일기번호? ");
for (int i = 0; i < length; i++) {
if (no[i] == Integer.parseInt(diaryNo)) {
System.out.printf("날짜 : %s \n", date[i]);
System.out.printf("날씨 : %s \n", weather[i]);
System.out.printf("제목 : %s \n", title[i]);
System.out.printf("내용 : %s \n", contents[i]);
System.out.printf("모닝커피 : %s \n", toCoffeeString(coffee[i]));
return;
}
}
System.out.println("해당 번호의 일기가 없습니다.");
}
public static void updateDiary(){
String diaryNo = Prompt.inputString("수정할 일기 번호? ");
for (int i = 0; i < length; i++){
if (no[i] == Integer.parseInt(diaryNo)) {
System.out.printf("날짜(%s)? >", date[i]);
date[i] = Prompt.inputString("");
System.out.printf("날씨(%s)? >", weather[i]);
weather[i] = Prompt.inputString("");
System.out.printf("제목(%s)? >", title[i]);
title[i] = Prompt.inputString("");
System.out.printf("내용(%s)? >", contents[i]);
contents[i] = Prompt.inputString("");
coffee[i] = inputCoffee(coffee[i]);
return;
}
}
System.out.println("해당 번호의 일기가 없습니다. ");
}
public static void deleteDiary(){
int diaryNo = Prompt.inputInt("삭제할 번호?") ;
int deletedDiary = indexOf(diaryNo);
if (deletedDiary == -1) {
System.out.println("무효한 번호입니다.");
return;
}
for (int i = deletedDiary; i < length -1; i++) {
no[i] = no[i + 1];
date[i] = date[i + 1];
weather[i] = weather[i + 1];
title[i] = title[i + 1];
contents[i] = contents[i + 1];
coffee[i] = coffee[i + 1];
}
no[length -1] = 0;
date[length -1] = null;
weather[length -1] = null;
title[length -1] = null;
contents[length -1] = null;
coffee[length -1] = (char) 0;
length--;
}
private static int indexOf(int diaryNo) {
for (int i = 0; i < length; i++){
if (no[i] == diaryNo){
return i;
}
}
return -1;
}
public static boolean available() {
return length < MAX_SIZE;
}
}
package bitcamp.util;
import java.util.Scanner;
public class Prompt {
static Scanner scanner = new Scanner(System.in);
public static String inputString(String title) {
System.out.print(title);
return scanner.nextLine();
}
public static int inputInt(String title) {
return Integer.parseInt(inputString(title));
}
public static void close() {
scanner.close();
}
}
package bitcamp.personalapp;
import bitcamp.util.Prompt;
import bitcamp.personalapp.handler.DiaryHandler;
public class App {
public static void main(String[]args){
printTitle();
printMenu();
while (true) {
String menuNo = Prompt.inputString("메인> ");
if (menuNo.equals("6")){
break;
} else if(menuNo.equals("menu")) {
printMenu();
} else if(menuNo.equals("1")){
DiaryHandler.inputContents();
} else if(menuNo.equals("2")){
DiaryHandler.printDiary();
} else if(menuNo.equals("3")){
DiaryHandler.viewDiary();
} else if(menuNo.equals("4")){
DiaryHandler.updateDiary();
} else if(menuNo.equals("5")){
DiaryHandler.deleteDiary();
} else {
System.out.println(menuNo);
}
}
Prompt.close();
}
static void printTitle() {
System.out.println("나의 개발자 도전기");
System.out.println("-------------------------");
}
static void printMenu() {
System.out.println("1. 일기 등록 ");
System.out.println("2. 일기 목록 ");
System.out.println("3. 일기 조회 ");
System.out.println("4. 일기 변경 ");
System.out.println("5. 일기 삭제 ");
System.out.println("6. 종료 ");
}
static boolean promptContinue() {
String response = Prompt.inputString("계속 입력하시겠습니까?(Y/n) ");
if (!response.equals("") && !response.equalsIgnoreCase("Y")){
return false;
}
return true;
}
}
'[네이버클라우드] 클라우드 기반의 개발자 과정 7기 > 웹프로그래밍' 카테고리의 다른 글
[NC7기-32일차(6월9일)] - 웹프로그래밍 13일차 (0) | 2023.06.09 |
---|---|
[NC7기-31일차(6월8일)] - 웹프로그래밍 12일차 (0) | 2023.06.08 |
[NC7기-29일차(6월5일)] - 웹프로그래밍 10일차 (0) | 2023.06.05 |
[NC7기-28일차(6월2일)] - 웹프로그래밍 9일차 (0) | 2023.06.02 |
[NC7기-27일차(6월1일)] - 웹프로그래밍 8일차 (0) | 2023.06.01 |