我有一项任务要求我用用户输入代码占星,而不是工作

时间:2015-11-01 00:46:20

标签: java string input

我已经完成了一项任务,要求我编写一个代码,该代码与用户输入的数字(月和日,例如1月= 1,1月5日= 1/5)有关,而我的代码取数字他们输入并将其改为单词。例如,如果他们输入4和7的月份和日期,我的代码将其转换为4月7日输出。

我的问题是,当我运行程序时,程序会询问月份和任何输入后,即使是1月2日,输出也会显示" 12月31日"。我认为这是因为这是我编写的最后一件事,但是如果我做了其他的陈述,它告诉我"否则没有"并且不会编译。

这是代码的开头(几个月以与前两个相同的方式继续,然后更改为几个月继续进行的日子。

import java.io.*;
import static java.lang.System.*;
import java.util.Scanner;
import java.lang.Math;

  class Assignment2Try2{
    public static void main (String str[]) throws IOException {
      Scanner scan = new Scanner(System.in);

     int numberMonth = 0; 
     int numberDay = 0;
     String month = "";
     String day = "";

     System.out.println( "What month were you born in? (number)" ); 
     numberMonth = scan.nextInt();
     if (numberMonth == 1);
     {
       month = "January";
     }
     if (numberMonth == 2);
     {
       month = "Febuary";
     }

在这些日子里,它看起来像这样,并且每个月都要经过31次,以便更容易编码:

     if (numberDay == 1);
     {
       day = "first";
     }
     if (numberDay == 2);
     {
       day = "second";
     }
     if (numberDay == 3);
     {
       day = "third";
     }

以这种形式,它编译,但只是打印" 12月31日"每一次,无论输入,并没有要求日输入,只需一个月。我认为我的最终System.out.println可能有问题,如下所示:

System.out.println( "Your birthday is: " + month + " " + day); 

我很困惑为什么编译器只运行它来输出" 12月31日"因为月份代码似乎没有错,而且代码也没有。

1 个答案:

答案 0 :(得分:2)

Oh, that took me a while, too ;-) You have too much semicolons. Remove all of the semicolons after the if

 if(month == 1);
               ^

These ones.