使用字符串数组的开关案例

时间:2018-04-21 00:59:41

标签: java arrays string switch-statement

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分钟前

4 个答案:

答案 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");
      }