Java 为什么我的月输入要乘以10?

Java 为什么我的月输入要乘以10?,java,Java,我试图创建一个类,该类接受用户输入一个月,然后输出该月的天数。每当我测试我的类时,它不会给我天数的输出,而是将月数乘以10。为什么会发生这种情况?我能做些什么来修复它 这是我的密码 import java.util.Scanner; public class Appointment { public static void main(String[] args) { Scanner kin = new Scanner(System.in); Syste

我试图创建一个类,该类接受用户输入一个月,然后输出该月的天数。每当我测试我的类时,它不会给我天数的输出,而是将月数乘以10。为什么会发生这种情况?我能做些什么来修复它

这是我的密码

import java.util.Scanner;

public class Appointment
{
   public static void main(String[] args)
   {
       Scanner kin = new Scanner(System.in);

       System.out.print("Enter a number that corresponds to a month: ");
       int month = kin.nextInt();
       System.out.print(month);
       int Days = 0;
       System.out.print(Days);
       if ( month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
       {
           Days = 31;
        }
        else if ( month == 4 || month == 6 || month == 9 || month == 11)
        {
            Days = 30;
        }
        else if ( month == 2)
        {
            Days = 28;
        }
    }
    public int getDays()
       {
           int Days = 0;
           return Days;
        }
     {


   } }

你没有把你的月份乘以10;您刚刚在一个月后打印了一个0。print方法不会在您想要打印的内容之后放置任何内容,甚至连换行符都不会

Enter a number that corresponds to a month: 2
20
^^
| \
|  --- The `0` is from `Days`
------ The `2` is from `month`
输出空格或其他措辞,或使用println在输出后输出换行符,以直观地区分两个变量的输出


另外,在正确分配后的几天内,在所有这些if语句之后打印,所以打印时它不是0。

您的代码很好,但您应该使用

System.out.println而不是 系统输出

问题是,您先打印月份,然后在同一行中的数字0可变天之后立即打印


建议下次使用调试器:

您只需打印月份,然后打印0,没有空格。在代码中,getDays方法从未被调用。它充满了错误。

该代码无法实现您所说的。getDays是无用的,并且只有在打印结果后才修改主函数中的局部变量Days。您的月份没有被乘以10,但您正在打印月份号,然后在没有任何换行的情况下立即打印0。另外,在更改日期变量之前,您将打印它。