2017-04-26 1 views
-2

Ich schreibe eine Konsolen-basierte Rechneranwendung für ein Universitätsprojekt und bin in einen kleinen Fehler geraten.F # Hinzufügen zu einer änderbaren Liste

Wenn ein Benutzer eine Option aus dem Menü auswählt (1,2,3,4 usw.), können sie 2 Zahlen eingeben und die Summe addieren, subtrahieren, teilen oder multiplizieren. Nachdem jede erfolgreiche Summe gelöst und angezeigt wurde, möchte ich sie zu meiner Liste sumHistory hinzufügen.

Hier ist mein Code derzeit, ich fühle mich wie es sollte funktionieren, aber ich bin offensichtlich in etwas kleines und albernes läuft verhindert die Liste angezeigt wird, wenn es gesagt wird!

let sumHistory = new List<string>() 

match input with 
|"1" -> Console.WriteLine("Please enter 2 integers: ") 
     let a= Console.ReadLine() 
     let b= Console.ReadLine() 
     let A: int = int32 a 
     let B: int = int32 b 
     let C = (add A B) 
     let D = (string A + " + " + string B + " = " + string C) 
     Console.WriteLine(D) 
     sumHistory.Add(D)  
|"2" -> Console.WriteLine("Please enter 2 integers: ") 
     let a= Console.ReadLine() 
     let b= Console.ReadLine() 
     let A: int = int32 a 
     let B: int = int32 b 
     let C = (sub A B) 
     let D = (string A + " - " + string B + " = " + string C) 
     Console.WriteLine(D) 
     sumHistory.Add(D) 
|"3" -> Console.WriteLine("Please enter 2 integers: ") 
     let a= Console.ReadLine() 
     let b= Console.ReadLine() 
     let A: int = int32 a 
     let B: int = int32 b 
     let C = (div A B) 
     let D = (string A + "/" + string B + " = " + string C) 
     Console.WriteLine(D) 
     sumHistory.Add(D) 
|"4" -> Console.WriteLine("Please enter 2 integers: ") 
     let a= Console.ReadLine() 
     let b= Console.ReadLine() 
     let A: int = int32 a 
     let B: int = int32 b 
     let C = (mul A B) 
     let D = (string A + " * " + string B + " = " + string C) 
     Console.WriteLine(D) 
     sumHistory.Add(D) 
|"5" -> sumHistory |> Seq.iteri (fun index item -> printfn "%i: %s" index sumHistory.[index]) 
|"6" -> let data = ReadInText() 
     data.Read() 
+1

Refactoring das Projekt und die Anwendung guter SE-Prinzipien ist eine ganze Reihe von Marken, ich versuche nur, Dinge im Moment @FyodorSoikin :) – Alex

Antwort

-1

[gelöst]

Nachdem tatsächlich meinen eigenen Code Lesung durch erkannte ich, es war nur ein dummer Fehler.

Die Liste wurde innerhalb der while deklariert und daher wurde nach jeder Summe gelöscht neu gestartet!

Verschieben let sumHistory = new List<string>() an den Anfang des Dokuments direkt unter Namespace Deklarationen löste dies.

Verwandte Themen