Java 使用字符串数组切换大小写
我把开关盒和字符串数组弄错了。如果不使用Java 使用字符串数组切换大小写,java,arrays,string,switch-statement,Java,Arrays,String,Switch Statement,我把开关盒和字符串数组弄错了。如果不使用if-else,如何解决此问题。。非常感谢。 ps:若我在网站上犯了语法错误,那个就不是那个样了 我就这样解决了这个问题, 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 n
if-else
,如何解决此问题。。非常感谢。
ps:若我在网站上犯了语法错误,那个就不是那个样了
我就这样解决了这个问题,
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;
}
String[]months={“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”、“l”};
int valueMonth;
扫描仪tara=新扫描仪(System.in);
System.out.println(“输入编号:”);
valueMonth=tara.nextInt();
如果(valueMonth>0&&valueMonth您不能提供数组作为开关盒参数(如switch(months)
)
现在还不太清楚你的意图是什么,请填写更多关于你想要实现什么的细节
从表面上看,只需调用months[valueMonth-1]
即可返回正确的字符串。
为了防止无效输入,可以使用try catch
语句,如下所示:
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语句的oraclejava教程涵盖了这个确切的场景
看一看-我不懂Java本身,但我知道其他语言中的switch语句。希望这个伪代码结构能帮助您了解错误所在
try {
theMonth = months[valueMonth-1];
} catch (ArrayOutOfBoundsException ex) {
System.out.println("Invalid number!");
}
在您的案例中,WHAT_WILL_HAVE_THE_VALUE_In_case应该是一个包含月份数的变量。每个案例都应该有一个数字(1-12)作为其潜在的_值。在每个案例的代码中,您都会有一些东西将月份“April”的名称打印到您正在使用的屏幕/控制台/文件中
祝您的作业顺利!您可以尝试类似于此的切换语句
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;
}
或者你可以简单地这样做
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)你想用这个做什么?你会得到什么错误?案例1,意味着它将执行冒号和中断之间的所有操作;if months==1。但是看起来monthNumber是一个数组…也许你想把开关(valueMonths)放在这是一个int,比如1。我的练习是从用户那里得到值,到这个输入月在屏幕上。比如,如果他说4,程序将在屏幕上输入April。我只能用switch-case语句来完成。但我用java上的数组主题。老师用if-else来完成。我很容易做到。但现在我试着用switch-case来完成,如果可能的话。我想你的意思是valueMonth-1
我重写了这个问题。谢谢你的帮助,我试图在同样的问题上做更多的练习。我希望这能让我在这方面的知识更好。Usama,我知道这是一条规则,我们不应该在这里感谢。但是谢谢你。再问一个问题。我不能不写上几个月[10],写上几个月还是类似的?
if(monthNumber>0 && monthNumber<=12){
System.out.println(months[monthNumber-1]);
}else{
System.out.println("Invalid Month Number");
}