问题描述
所以我试图用if-else-if语句做一个简单的代码,但是它不起作用。我以前只是做过if-else,而我感到困惑。这是代码。为什么不接受我的else-if?
import java.util.Scanner;
public class DaysOfWeek {
public static void main (String[]args) {
Double day;
System.out.print("Enter the day: ");
Scanner sc = new Scanner(system.in);
day = sc.nextDouble();
if (day.equals("Monday"));
{
System.out.println("Sounds like someone has a case of the Mondays!");
}
else if (day.equals("Wednesday"));
{
System.out.println("It's hump day! El ombligo!");
}
else if (day.equals("Friday"));
{
System.out.println("Finally. It's Friday!");
}
else {System.out.println("It's another day of the week.");}
}}
解决方法
-
如果您希望进行任何比较以书面形式进行工作,则需要
String day
和sc.nextLine()
-
if和else if行是否不应该使用
;
-更容易查看是否像这样写if (condition) { }
谢谢大家,我在if-else-if行的结尾快速指出了我的分号。另外,感谢您抓住字符串而不是两倍,我知道这一部分,但是却忽略了它,因为我对if-else-if行的混淆感到非常沮丧。一旦我纠正了两个问题,它就可以按照我的预期工作。
字符串day和sc.nextLine()替换了Double,以便进行适当的比较。
;已从我的if-else-if行的结尾处删除。
我还添加了一些内容,以便在输入的几天内可以使用各种选项
import java.util.Scanner;
public class DaysOfWeek{
public static void main (String[]args) {
String day;
System.out.print("Enter the day: ");
Scanner sc = new Scanner(System.in);
day = sc.nextLine();
if (day.equals("Monday")||day.equals("M")||day.equals("Mon.")||day.equals("Mon"))
{
System.out.println("Sounds like someone has a case of the Mondays!");
}
else if (day.equals("Wednesday")||day.equals("W")||day.equals("Wed.")||day.equals("Wed"))
{
System.out.println("It's hump day! El ombligo!");
}
else if (day.equals("Friday")||day.equals("F")||day.equals("Fri.")||day.equals("Fri"))
{
System.out.println("Finally. It's Friday!");
}
else {System.out.println("It's another day of the week.");}
}}
,
与else-if无关。
您将获得一个双输入(sc.nextDouble()
),然后将其与String进行比较。
永远不会如此,因此else
将始终被称为