String[] months={"A","B","C","D","E","F","G","H","I","J","K","L"};
int valueMonth;
Scanner yasin=new Scanner(System.in);
System.out.println("Please input your month number: ");
valueMonth=(yasin.nextInt());
switch (valueMonth) {
case 1: months[valueMonth];
break;
}
我在切换案例和字符串数组方面犯了错误。如何在不使用if-else
的情况下解决这个问题..谢谢..
ps:如果我在网站上做了语法错误,那不是。
我这样解决了这个练习;
String[] months={"a", "b" ,"c","d","e","f","g","h","i","j","k","l"};
int valueMonth;
Scanner tara=new Scanner(System.in);
System.out.println("Input Number : ");
valueMonth=tara.nextInt();
if(valueMonth>0 && valueMonth<=12){
System.out.println(months[ valueMonth- 1]);
}else{
System.err.println("ERROR");
}
我想做更多的练习,并尝试用Switch-Case
语句来做。但它不起作用。也许我错过了一些东西,或者根本就没有工作 - YasinAtagün7分钟前
答案 0 :(得分:1)
关于switch语句的Oracle Java教程涵盖了这个确切的场景,我相信。
看看 - https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html
答案 1 :(得分:1)
我本身不懂Java,但我知道其他语言的switch语句。希望这个伪代码结构能帮助你看到你做错了什么。
switch ( WHAT_WILL_HAVE_THE_VALUE_IN_CASE ) {
case POTENTIAL_VALUE_A:
... lines of code that will execute if WHAT_WILL_HAVE_THE_VALUE_IN_CASE == POTENTIAL_VALUE_A ...
break;
case POTENTIAL_VALUE_B:
... same thing as before, for VALUE_B ...
break;
default:
... what will happen if none of the above applied ...
break;
}
在您的情况下,WHAT_WILL_HAVE_THE_VALUE_IN_CASE应该是包含月份编号的变量。每个案例都应该有一个数字(1-12),因为它是POTENTIAL_VALUE。在每个案例的代码中,您将有一些东西可以将月份“April”的名称打印到您正在使用的屏幕/控制台/文件中。
祝你好运!
答案 2 :(得分:0)
您不能将数组作为switch-case参数提供(如switch (months)
)。
目前还不清楚你的意图是什么,请填写有关你想要完成的更多细节。
从看来,只需调用months[valueMonth-1]
即可返回正确的字符串
为确保无效输入,您可以使用try-catch
语句,如下所示:
try {
theMonth = months[valueMonth-1];
} catch (ArrayOutOfBoundsException ex) {
System.out.println("Invalid number!");
}
答案 3 :(得分:0)
你可以尝试使用Switch Statement这样的东西。
String[] months = {"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Now","Dec"};
int monthNumber;
Scanner scan = new Scanner(System.in);
System.out.println("Please input your month number: ");
monthNumber = (scan.nextInt());
switch(monthNumber) {
case 1 :
System.out.println(months[0]);
break;
case 2 :
System.out.println(months[1]);
break;
case 3 :
System.out.println(months[2]);
break;
case 4 :
System.out.println(months[3]);
break;
case 5 :
System.out.println(months[4]);
break;
case 6 :
System.out.println(months[5]);
break;
case 7 :
System.out.println(months[6]);
break;
case 8 :
System.out.println(months[7]);
break;
case 9 :
System.out.println(months[8]);
break;
case 10 :
System.out.println(months[9]);
break;
case 11 :
System.out.println(months[10]);
break;
case 12 :
System.out.println(months[11]);
break;
default :
System.out.println("Invalid Month Number");
}
或者你可以这么做
if(monthNumber>0 && monthNumber<=12){
System.out.println(months[monthNumber-1]);
}else{
System.out.println("Invalid Month Number");
}