Java 程序在我的Do/While循环中抛出异常
我对编程非常陌生,正在练习do/while循环和switch语句。我已经写了一个程序,列出了博物馆的时间,它可以编译,但我似乎无法让它正常运行。它只是抛出:Java 程序在我的Do/While循环中抛出异常,java,switch-statement,do-while,Java,Switch Statement,Do While,我对编程非常陌生,正在练习do/while循环和switch语句。我已经写了一个程序,列出了博物馆的时间,它可以编译,但我似乎无法让它正常运行。它只是抛出: import java.util.Scanner; public class MuseumHours { public static void main (String[] args) { Scanner stdIn = new Scanner(System.in); //variables String
import java.util.Scanner;
public class MuseumHours {
public static void main (String[] args) {
Scanner stdIn = new Scanner(System.in);
//variables
String day;
boolean holiday = true;
String userContinue;
String monday = "Closed";
//end variables
//begin program
do {
System.out.println("Hello! Thank you for visiting the museum's website. For what day would you like to view our hours of operation?");
day = stdIn.nextLine();
System.out.println("Is today a holiday?");
holiday = stdIn.nextBoolean();
switch (day) {
case "Monday":
System.out.println(monday);
case "Tuesday":
if (holiday !=true) {
System.out.println("The museum is open from 12:00 to 4:00.");
} else {
System.out.println("The museum is open from 1:00 to 3:00.");
}
break;
case "Wednesday":
if (holiday !=true) {
System.out.println("The museum is open from 12:00 to 4:00.");
} else {
System.out.println("The museum is open from 1:00 to 3:00.");
}
break;
case "Thursday":
if (holiday != true) {
System.out.println("Today the museum opens from 10:00 to 5:00.");
} else {
System.out.println("Today the museum opens from 11:00 to 4:00.");
}
break;
case "Friday":
if (holiday != true) {
System.out.println("Today the museum opens from 10:00 to 5:00.");
} else {
System.out.println("Today the museum opens from 11:00 to 4:00.");
}
break;
case "Saturday":
if (holiday != true) {
System.out.println("Today the museum is open from 9:00 to 6:00.");
} else {
System.out.println("Today the museum is open from 10:00 to 5:00.");
}
break;
case "Sunday":
if (holiday != true) {
System.out.println("Today the museum is open from 9:00 to 6:00.");
} else {
System.out.println("Today the museum is open from 10:00 to 5:00.");
}
break;
default:
System.out.println("Invalid day.");
}
System.out.println("Would you like to run the program again? Enter Y for yes, or N for no.");
userContinue = stdIn.nextLine();
} while (userContinue.equals("Y"));
}
}
当您在执行时没有从命令行传递正确类型的参数时,可能会出现异常 例如,如果为“今天是假日吗?”传递的任何值与这些问题中的任何一个(true、false)不同(不区分大小写),则下一行将给出错误 holiday=stdIn.nextBoolean() 希望有帮助 在JavaSE7和更高版本中,可以在交换机中使用String对象 语句表达式 如果您没有使用JavaSE7及更高版本,则无法运行此程序 此外,您还可以通过替换
if(holiday != true){...}
到
它只是抛出:。。你们得到了什么异常?抛出了什么异常,针对哪个输入?你们错过了周一之后的break语句,对我来说毫无异常。在某些情况下,您缺少一些
break
语句,但它可以运行请提供例外情况。如果假日是布尔值,请不要使用(holyday!=true),只需使用(!holiday)
if(!holiday){...}