2014-11-27 6 views
1

나는 사용자에게 조디악 신호를 출력하는 Java를 사용하여 프로그램을 만들고 있습니다. 이 코드를 컴파일하면 0219가 하이라이트되고 "정수는 너무 큽니다."라고 표시됩니다. 나는 초심자이므로 이것이 바보 같은 실수라면 제발 좋을 것입니다. 당신이 0123을 입력하면 감사너무 큽니다.

System.out.println("Please enter your birthday month and day as a four digit number"); 
    System.out.println("(Ex: 0514 for May 14th):"); 
    double d = key.nextDouble(); 
    if (d >= 0101 && d <= 0120) { 
     System.out.println("You are a Capricorn."); 
    } 
    else if (d >= 0121 && d <= **0219**) { 
     System.out.println("You are an Aquarius."); 
    } 
    else if (d >= 0220 && d <= 0320) { 
     System.out.println("You are a Pisces."); 
    } 
    else if (d >= 0321 && d <= 0420) { 
     System.out.println("You are an Aries."); 
    } 
    else if (d >= 0421 && d <= 0521) { 
     System.out.println("You are a Taurus."); 
    } 
    else if (d >= 0522 && d <= 0621) { 
     System.out.println("You are a Gemini."); 
    } 
    else if (d >= 0622 && d <= 0723) { 
     System.out.println("You are a Cancer."); 
    } 
+1

정수 리터럴 앞에 0을 붙이면 기본 8 (8 진수) 숫자로 해석됩니다. 맨 앞의 0을 제거하십시오. –

답변

0

번호 입력은 선도적 인 0을 저장하지 않습니다, 다음 인쇄 D, 당신은 "123.0"는

그냥 선도 0의 모든 없애 볼 수 있습니다.

그래서 당신이 얻을 :

import java.util.Scanner; 
class Untitled { 
    public static void main(String[] args) { 
    System.out.println("Please enter your birthday month and day as a four digit number"); 
    System.out.println("(Ex: 0514 for May 14th):"); 
Scanner key = new Scanner(System.in); 
    double d = key.nextDouble(); 
    if (d >= 101 && d <= 120) { 
     System.out.println("You are a Capricorn."); 
    } 
    else if (d >= 121 && d <= 219) { 
     System.out.println("You are an Aquarius."); 
    } 
    else if (d >= 220 && d <= 320) { 
     System.out.println("You are a Pisces."); 
    } 
    else if (d >= 321 && d <= 420) { 
     System.out.println("You are an Aries."); 
    } 
    else if (d >= 421 && d <= 521) { 
     System.out.println("You are a Taurus."); 
    } 
    else if (d >= 522 && d <= 621) { 
     System.out.println("You are a Gemini."); 
    } 
    else if (d >= 622 && d <= 723) { 
     System.out.println("You are a Cancer."); 
    } 
} 
} 
+0

감사합니다. 지금 작동합니다. 그리고 위의 스캐너 라인을 가지고 있습니다. 게시 한 코드 행은 클래스의 조각입니다. – YaBoiFred

3

은 "9"잘못된 숫자를 만드는 진수로 해석되는 것을 의미 0으로 수를 시작.