Java 20221024

신래은·2022년 12월 14일

JAVA

목록 보기
6/22

DAY 6

Code

InfiniteLoopEx

import java.util.Scanner;

public class InfiniteLoop {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int total =0, user_win = 0, cpu_win = 0;

        while(true) {
            total++;
            int dice = ((int)(Math.random()*6+1));
            int dice2 = ((int)(Math.random()*6+1));
            
            int sum = dice + dice2;
            int value = sum%2;

            System.out.print("홀짝을 예상하세요. 홀 : 1 / 짝 : 0   ");
            int even = s.nextInt();
                       
            System.out.println("dice : " + dice + " / dice 2 : " + dice2 + " / sum : " + sum );

        boolean win = value == even;
        if (win) {
            System.out.println("사용자 승");
            user_win++;
        }
        else {
            System.out.println("컴퓨터 승");
            cpu_win++;
        }
        
        System.out.print("다시 하시겠습니까? (1:예 / 0:아니오) : ");
        int sel = s.nextInt();
        if(sel == 0) {
            break;
        }
        }
    
        System.out.println("사용자 승률 : " + user_win/(double)total*100 + "%");
        s.close();
    }
}

MethodEx

public class MethodEx {
    public static void main(String[] args) {
		 // 메서드 호출
        int n = add(50, 30);
        System.out.println(n);
        System.out.println(add(100,50));

        System.out.println(rating(95));
        System.out.println(getPI()); 
        System.out.println(getArea(5));
        ageRating(25);     
        showMenu();
       
        }

    // 메서드 정의
    // 출력값의 타입이 정수(int)타입이고,
    // 2개의 int타입을 입력받는 메서드
    // 입출력이 모두 있는 메서드
    // int 값을 내보내고 있기 때문에 
    // add 라는 메서드명 앞에도 int가 들어가야 함
    public static int add(int a, int b) {   
    	// 위에서 가져온 값 계산 한 후 result에 저장
        int result = a + b;     
        // result 값을 위로 돌려보내줌
        return result; 
    }
    public static double getArea (double r) {
        return getPI()*r*r;
    }
    // 입력, 출력 모두 없는 형태- 단순한 정보출력 용도
    public static void showMenu() {
        System.out.println("=================================");
        System.out.println("         1. 회원가입");
        System.out.println("          2. 로그인");
        System.out.println("      3. 회원 정보 수정");
        System.out.println("         4. 회원 탈퇴");
        System.out.println("      5. 회원 목록 보기");
        System.out.println("           0. 종료");
        System.out.print("선택 : ");
    }
    
    // 출력이 있고, 입력이 없는 메서드
    public static double getPI() {
        return 3.141595653589793238;
    }
    // 입력이 있고, 출력이 없는 메서드
    public static void ageRating (int age) {  // void로 된 것은 return 을 설정하지않아도 됨. void method에서 return이 의미하는 것은 종료.
        if (age >=18) {
            System.out.println("성인입니다.");
        }
        else if (age >=14) {
            System.out.println("청소년입니다.");
        }
        else {
            System.out.println("어린이 입니다.");
        }
    }
    public static String rating(int score){
        String grade ="";
        if (score > 100) {grade = "Error";}  
        // grade 대신 return으로 바로 입력해도 됨.
        else if (score <= 100 && score >=90) {
            grade = "A" + (score >= 95? "+" : "0");
        }
        else if(score >= 80) {
            grade = "B" + (score >=85 ? "+" : "0");
        }
        else if(score >= 70) {
            grade = "C" + (score >=75 ? "+" : "0");
        }
        else if(score >= 60) {
            grade = "D" + (score >=65 ? "+" : "0");
        }
        else if(score >= 0) {
            grade = "F" ;
        }
        else {
            grade = "Error";
        }
        return grade;
    }
}

MethodEx

method를 이용한 간단한 회원 관리 시스템
-회원탈퇴기능 보강해야함

import java.util.Scanner;

public class MethodMember {
    final static int len = 10;
    static String [] member_id = new String[len];
    static String [] member_pw = new String[len];
    static String [] member_name = new String[len];
    static String [] member_bt = new String[len];
    static int nextIndex = 0;
    
    public static void main(String[] args) {
    
       makeDummyData(3);

       Scanner s = new Scanner(System.in);
    
       System.out.println("==========메뉴=========");
       System.out.print("1. 회원가입  2. 로그인  3. 회원정보 수정  4.회원 탈퇴  5.회원조회  0. 프로그램 종료 : ");
       int sel = s.nextInt();
       s.nextLine();

    if (sel == 0) {
       System.out.println("종료합니다.");
       s.close();
       return; }

    switch (sel) {
         case 1: 
               if (nextIndex == len) {
                 	System.out.println("더 이상 가입 불가능 합니다.");
                        break;
                    }
                    System.out.println("==== 회원 정보 등록 ====");
                    String input_value = inputMemberInfo();

                    member_id[nextIndex] = input_value.split(",")[0];
                    member_pw[nextIndex] = input_value.split(",")[1];
                    member_name[nextIndex] = input_value.split(",")[2];
                    member_bt[nextIndex] = input_value.split(",")[3];
                    nextIndex++;
                    System.out.println("== 회원 등록 완료 ==");
                    
                    break;
    
                case 2:
                    System.out.println("=== 로그인");
                    boolean loginStatus = checkMember();
                    if (!loginStatus) {
                        System.out.println("로그인 정보가 잘못되었습니다.");
                    }
    
                break;
                
                
                case 3:
                    System.out.println("=== 정보수정");
                    loginStatus = checkMember();
                    if (!loginStatus) {
                        System.out.println("로그인 정보가 잘못되었습니다.");
                        break;  // 로그인과 달리 스위치 문을 빠져나가게 함.
                    }
                    input_value = inputMemberInfo();
                    break;
                
                case 4:
                    System.out.println("=== 회원 탈퇴===");
                    loginStatus = checkMember();
                    if (!loginStatus) {
                        System.out.println("로그인 정보가 잘못되었습니다.");
                        break;  // 로그인과 달리 스위치 문을 빠져나가게 함.
                    }
                    break;
    
                case 5:
                    System.out.println( "======== 회원정보=======");
                    for(int i=0; i<len; i++) {
                        if(member_id[i] != null)
                        System.out.println(member_id[i] + " / " + member_name [i] + " / " + member_bt[i]);
                    }
                    break;

				default : 
                    System.out.println("잘못된 메뉴 번호입니다.");
                }
            }
        }
            //  s.close();
    
    public static void makeDummyData (int num) {
        if (num <0 ) { 
            return;      // 음수 값이 입력되었다면, 실행하지 않는다.
        }
        if (num > len) {    // 설정된 최대값을 넘는 파라미터 값이라면,
            num = len;      // 파라미터 값을 최대갑승로 지정한다.
        }
        // Dummy data
        for(int i=0; i<num; i++) {
            member_id[i] = "member" + i; 
            member_pw[i] = "123456";
            member_name[i] = "사용자" + i;
            member_bt[i] = "20221027" + i;
        }
        nextIndex = num;

    }
    public static String inputMemberInfo () {
        Scanner s = new Scanner(System.in);     // 스캐너를 닫으면 main 스캐너 작동안함.
        String id = null;
        while (true) {
            System.out.print("아이디 (6자 이상) : ");
            id = s.nextLine();
            if(id.length() < 6) {
            System.out.println("아이디는 6자 이상이어야 합니다.");
            continue;
        }
                                             
        boolean isDuplicated = false;
        for (int i=0; i < len; i++) {
            if (id.equals(member_id[i])) {
                System.out.println("이미 가입된 아이디 입니다.");
                isDuplicated = true;
            }
        }
        if(!isDuplicated) {
            break;
        }
        }
        
        String pw = null;
        while (true) {
            System.out.print("비밀번호 (6자 이상) : ");
            pw = s.nextLine();
            if(pw.length() < 6) {
            System.out.println("비밀번호는 6자 이상이어야 합니다.");
            continue;
        }
        else {
            break;
        }
        }
        System.out.print("이름) : ");
        String name = s.nextLine();
                            
        String birth = null;
        while (true) {
            System.out.print("생년월일 (8자리) : ");
            birth = s.nextLine();
            if(birth.length() != 8) {
            System.out.println("생년월일 8자로 입력하세요.");
            continue;
        }
        else {
            break;
        }
        }
    return id + "," + pw + "," + name + "," + birth;
    }
    public static boolean checkMember() {
        Scanner s = new Scanner(System.in);
        System.out.print("아이디 : ");
        String login_id = s.nextLine();
        System.out.print("비밀번호 : ");
        String login_pw = s.nextLine();
        boolean loginStatus = false;
        for (int i=0; i<len; i++) {
            if((loginStatus=login_id.equals(member_id[i])) && (login_pw.equals(member_pw[i]))){ // login_id가 member_id[i]와 같다면 loginStatus는 true가 됨
                System.out.println("== 인증 성공 ==");
                System.out.println("아이디 : " + member_id[i]);
                System.out.println("이름 : " + member_name[i]);
                System.out.println("생년월일 : " + member_bt[i]);
                break;
            }
        }
        return loginStatus;
    }
}

0개의 댓글