切换语句困难

时间:2016-11-05 12:44:51

标签: java input switch-statement

我正在制定一个程序,继续要求用户输入航班代码,即FR201。然后该程序将读取航班代码并返回航空公司和航班号..但我无法让它正常工作,我只是得到“无效输入”。 这是我尝试过的,任何帮助表示赞赏!

import java.util.Scanner;
public class flightcode{
public static void main(String[]args)
{
    String s2;
    do{

    Scanner s1 = new Scanner(System.in);
    System.out.println("Enter a number");

     s2 = s1.nextLine();
    int num = s2.length()-2;
    int s3=0;


    if(s2.substring(0,1)=="EI")
    {
     s3 = 1;
    }

    else if(s2.substring(0,1)=="FR")
    {
    s3 = 2;
    }
    else if(s2.substring(0,1)=="AF")
    {
     s3 = 3;
    }
    else if(s2.substring(0,1)=="AA")
    {
     s3 = 4;
    }
    else if(s2.substring(0,1)=="IB")
    {
     s3 = 5;
    }



    switch (s3)

    {

        case 1: System.out.println("Airline: Aer Lingus - Flight number:" + s2.substring(2)); break;
        case 2: System.out.println("Airline: Ryanair - Flight number:" + s2.substring(2)); break;
        case 3: System.out.println("Airline: Air France - Flight number:" + s2.substring(2)); break;
        case 4: System.out.println("Airline: American Airlines - Flight number:" + s2.substring(2)); break;
        case 5: System.out.println("Airline: Iberia - Flight number:" + s2.substring(2)); break;
        default: System.out.println("Invalid input"); break;

    }
    }
        while(s2!= "END");


    }
}

1 个答案:

答案 0 :(得分:0)

问题不在交换机中。阅读:https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#substring(int,%20int)

我建议您使用断言来处理永远不会发生的事情。比如代码通过if链的else。