2015-12-02 55 views
-1

也許有一個簡單的答案,但我沒有找到它,我希望你們CA我的問題案後回所有選項

String herhaal; 
do 
{ 
    int caseSwitch = 1; 
    WagenPark wagenPark = new WagenPark(); 

    Console.WriteLine("*** Wagenpark beheer ***"); 
    Console.WriteLine("1. Voeg een wagen toe"); 
    Console.WriteLine("2. Geef wagenpark overzicht"); 
    caseSwitch = int.Parse(Console.ReadLine()); 

    switch (caseSwitch) 
    { 
     case 1: 
      Wagen wagen = new Wagen(); 
      Console.WriteLine("Geef de nummerplaat van de wagen in: "); 
      wagen.NummerPlaat = Console.ReadLine(); 
      Console.WriteLine("Geef het merk van de wagin in: "); 
      wagen.Merk = Console.ReadLine(); 
      wagenPark.schrijfWagenIn(wagen); 
      Console.WriteLine("Wagen met nummerplaat " + wagen.NummerPlaat + " is toegevoegd."); 
      break; 
     case 2: 
      Console.WriteLine("*** Wagenpark overzicht ***"); 
      wagenPark.geefOverzicht(); 
      break; 
     default: 
      Console.WriteLine("Default case"); 
      break; 

    } 
     Console.WriteLine("Wens je nog een keuze te maken op het menu (J/N) ?"); 
     herhaal = Console.ReadLine(); 
    } while (herhaal == "J" || herhaal == "j"); 
} 

幫助的情況下的每一個的端氏的PROGRAMM應該回到2個選項我在頂部

Console.WriteLine("*** Wagenpark beheer ***"); 
Console.WriteLine("1. Voeg een wagen toe"); 
Console.WriteLine("2. Geef wagenpark overzicht"); 

但情況1之後它只是ANDS與案例2相同的我認爲做的同時會防止這一點,但事實並非如此。

+0

代碼是否達到要求你做出其他選擇的程度? –

+1

你是什麼意思「在案件1之後,它只是和」? – juharr

+2

每一次通過循環,你都會做'WagenPark wagenPark = new WagenPark();' - 是不是你打算單獨使用這些單詞並且添加* multiple *'Wagen'? (當然,在案例2中,您正在處理一個沒有添加「Wagen」的新工具) –

回答

1

分析完代碼後,有兩件事情會導致意外行爲。

第一個是如在comments to your question通過@Damien_The_Unbeliever說明。每次您通過do...while循環時,您都會創建一個新的停車場(WagenPark)。因此,您將不會有多輛車(Wagen)因爲您已將wagenPark替換爲新的wagenPark而被檢入。這個問題可以通過在循環開始之前將wagenPark初始化移動到點來解決。

WagenPark wagenPark = new WagenPark(); // put it here 
do 
{ 
    int caseSwitch = 1; 
    
              
   
     WagenPark wagenPark = new WagenPark(); 
    // delete this 

    Console.WriteLine("*** Wagenpark beheer ***"); 
    Console.WriteLine("1. Voeg een wagen toe"); 
    Console.WriteLine("2. Geef wagenpark overzicht"); 
    caseSwitch = int.Parse(Console.ReadLine()); 

下一個潛在的錯誤是,在登記入住,汽車(WagenPark.schrijfWagenIn())方法不能正常工作。可能的,提供概述(WagenPark.geefOverzicht())的方法也可能無法正常工作。測試這兩種方法以確保它們正常工作,並且您的代碼可以正常工作。

+0

謝謝你做到了 – Sanscull