我已经完成了一项任务,要求我编写一个代码,该代码与用户输入的数字(月和日,例如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日"因为月份代码似乎没有错,而且代码也没有。
答案 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.