Слишком большое целое число

1

Я делаю программу с использованием Java, которая будет выводить знак зодиака пользователей. Когда я компилирую этот код, он выделяет 0219 и говорит, что "целое число слишком велико". Я новичок, поэтому, если это глупая ошибка, пожалуйста, будь красивой. благодаря

    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 (восьмеричное) число. Избавьтесь от ведущих нулей.
Теги:
bluej

2 ответа

3

Запуск числа с помощью 0 означает, что он интерпретируется как восьмеричный, что делает "9" неверной цифрой.

0

Ввод номера не сохраняет ведущий 0. Если вы введете 0123, а затем распечатаете d, вы увидите "123.0",

Просто избавьтесь от всех ведущих 0s.

Итак, вы получите следующее:

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
    Спасибо, ребята, это работает сейчас. И да, у меня есть строка сканера выше, строки кода, которые я разместил, - просто часть моего класса

Ещё вопросы

Сообщество Overcoder
Наверх
Меню