2017-08-10 39 views
1

我有两个arrayList在一个类,一个存储汽车和另一个谁存储货车。arrayList内容的显示

我想要一个选项来显示特定数组中的所有信息。例如,按1为汽车或按2为传送车

我设法做出了一些事情,但它不能正常工作,选择2后,它显示我所有的客货车,但不是继续下一行,而是询问要租用哪个车型,它会再次询问“按1汽车,按2输入货车“。

下面是代码,我希望你明白我的问题

List<Van> vanlist = new ArrayList(); 
    vanlist.add(new Van("Mercedes", "Van2", "VBC842", 300, 500)); 
    vanlist.add(new Van("Mercedes", "Van3", "VBC489", 300, 500)); 
    vanlist.add(new Van("Mercedes", "Van1", "VBC970", 300, 500)); 
    vanlist.add(new Van("Mercedes", "Van4", "VBC153", 300, 500)); 

    Scanner input = new Scanner(System.in); 
    System.out.print("Type 1 for cars; Type 2 for vans; Type 3 for trucks \n"); 
    int vop = input.nextInt(); 
    for(Van van: vanlist) { 
     if (vop == 2) { 
      System.out.println(van); 
     } 
    } 

    System.out.print("Type 1 for cars; Type 2 for vans; Type 3 for trucks \n"); 
    int opt = input.nextInt(); 
    for(Car car: carlist) { 
     if (opt == 1) { 
      System.out.println(car); 

     }  
    } 

    System.out.print("Enter model to rent: "); 
    String model = input.nextLine(); 
+0

您再次询问请参阅第二个'System.out.print(“类型1的汽车;类型2的货车;类型3的卡车\ n”);'。你的代码工作正常。我没有得到这样一个事实:当你可以使用'SWITCH CASE'时,为什么要使用两个变量'vop和opt'。 –

回答

0

您可以使用此代码。

List<Van> vanlist = new ArrayList(); 
    vanlist.add(new Van("Mercedes", "Van2", "VBC842", 300, 500)); 
    vanlist.add(new Van("Mercedes", "Van3", "VBC489", 300, 500)); 
    vanlist.add(new Van("Mercedes", "Van1", "VBC970", 300, 500)); 
    vanlist.add(new Van("Mercedes", "Van4", "VBC153", 300, 500)); 

    Scanner input = new Scanner(System.in); 
    System.out.print("Type 1 for cars; Type 2 for vans; Type 3 for trucks \n"); 
    int vop = input.nextInt(); 
    Switch(vop){ 
    case 1: 
    for(Van van: vanlist)    
      System.out.println(van);   
    break; 

    case 2:  
    for(Car car: carlist) 
      System.out.println(car); 
    break; 
    default: 
    System.out.println("Invalid Choice"); 
    break; 
    } 
    System.out.print("Enter model to rent: "); 
    String model = input.nextLine(); 

看到这里,你不必使用两个变量。这将为你工作。

+0

非常感谢,它解决了我的问题。但是,现在,程序在最后一行之后终止。有什么可以解决的问题?[程序在String model = input.nextLine(); [1]后终止] [1] [1]:https://i.stack.imgur.com/Yp53c.png – enjustice