자바 소스코드 에러

조회수 2145회
import java.util.Scanner;

public class RandomNumber {
    public static long Money = 1000000; //천만원 기본 금액으로 설정
    static int num1; //숫자 1
    static int num2; //숫자 2
    static int num3; //숫자 3
    static int mynumber1, mynumber2, mynumber3=0; //내가 예상하는 로또 번호
    static int choose = 0; //선택
    static int putMoney = 0; //넣는 돈
    static int setMoney = 0; //내기에 거는 동
    private static Scanner sc;

    public static void main(String[] args) {

        sc = new Scanner(System.in);

        System.out.println("------------------------------------------------------");
        System.out.println("|1. 내 현재 잔고 보기|2. 로또 시작하기|3. 금액 더 넣기|4. 종료하기|");
        System.out.println("------------------------------------------------------");
        choose = sc.nextInt();

        //만약에 잔고가 0원이 되면 프로그램 종료 후 알림

        for(int i=0; i<100; i++){
            if(choose ==1){
                ShowMoney();
                choose = sc.nextInt();
            } else if (choose == 2){
                StartLotto();
                choose = sc.nextInt();

            } else if (choose == 3){
                PutMoney();
                choose = sc.nextInt();
            } else if (choose == 4){
                EndLotto();
                break;
            } else { System.out.println("1~4 사이에서 골라주세요");}
        }
    }


    private static void ShowMoney() {
        System.out.println("당신의 현재 잔고는 " + Money + "원 입니다.");   
        // TODO Auto-generated method stub

        System.out.println("------------------------------------------------------");
        System.out.println("|1. 내 현재 잔고 보기|2. 로또 시작하기|3. 금액 더 넣기|4. 종료하기|");
        System.out.println("------------------------------------------------------");
    }

    private static void StartLotto() {
        // TODO Auto-generated method stub
        String opnion; //다시 할 것인지 종료할 것인지에 대한 의견

        System.out.println("로또를 시작합니다.");
        System.out.print("당신의 숫자를 3개 입력해주세요 (1 ~ 10) : ");
        mynumber1 = sc.nextInt();
        mynumber2 = sc.nextInt();
        mynumber3 = sc.nextInt();

        System.out.print("당신이 내기에 걸 금액을 입력해주세요 : ");
        setMoney = sc.nextInt();

        num1 = (int) (Math.random()*10+1); //랜덤 값
        num2 = (int) (Math.random()*10+1); //랜덤 값
        num3 = (int) (Math.random()*10+1); //랜덤 값

        System.out.print(num1 + " ");
        System.out.print(num2 + " ");
        System.out.print(num3 + " ");

        if(num1 == mynumber1 && num2 == mynumber2 && num3 == mynumber3){ //숫자 3개가 모두 같을 때
            System.out.println("당신이 내기에서 이기셨네요!! 거신 금액의 2배를 드리겠습니다!");
            Money = setMoney*setMoney; //2배
        } else {
            System.out.println();
            System.out.println("내기에서 지셨군요 당신의 돈은 제 것입니다.");
            Money -= setMoney;
            System.out.print("다시 도전하시겠습니까? (Y/N) :  ");
            opnion = sc.nextLine(); //요구 입력

            if(opnion == "Y"){ 
                System.out.println("프로그램이 다시 시작 됩니다.");
                //StartLotto 재 실행

            } else if (opnion =="N"){
                //원래의 실행 창으로 돌아가기

                System.out.println("------------------------------------------------------");
                System.out.println("|1. 내 현재 잔고 보기|2. 로또 시작하기|3. 금액 더 넣기|4. 종료하기|");
                System.out.println("------------------------------------------------------");
            }
        }
    }

    private static void PutMoney() {
        // TODO Auto-generated method stub
        System.out.println("당신의 통장에 넣을 금액을 입력해주세요. 2한번에 최대 단위는 10만원 입니다.");
        putMoney = sc.nextInt();
        if(putMoney > 100000) {
            System.out.println("10만원 이하로 입력하세요");
            PutMoney();
        } else if (putMoney < 0) { 
            System.out.println("0원 이상부터 입금이 가능합니다.");
            PutMoney();
        }
        else {
            Money += putMoney;
            System.out.println(putMoney + "원이 입금되었습니다.");

            System.out.println("------------------------------------------------------");
            System.out.println("|1. 내 현재 잔고 보기|2. 로또 시작하기|3. 금액 더 넣기|4. 종료하기|");
            System.out.println("------------------------------------------------------");
        }
    }

    private static void EndLotto() {
        // TODO Auto-generated method stub
        System.out.println("로또 프로그램이 종료 되었습니다.");
        System.out.println("당신의 현재 잔고는 " + Money +"원 입니다.");
    }
}
**여기서  opnion  받아서 처리하는 부분이 계속 실행이 안되고, 원래는 Y를 입력하면 Lotto가 다시
 반복되고, N이 입력 되면 원래 다시 선택하는 부분으로 되돌아 가려고 하는데 코드 상으로는 에러가 발생하지 않지만, 막상 실행 시키면 디버깅 오류가 발생해요.. 도와주세요..**
  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)