Was zu kaufen ist
Teil des Abschnitts Grundlagen der Swift-Journey von Coddy — Lektion 86 von 86.
Aufgabe
EinfachSchreiben Sie eine Funktion whatToBuy, die itemNames, itemPrices und budget entgegennimmt und ein Array mit Artikelnamen zurückgibt, die innerhalb des Budgets gekauft werden können.
Iterieren Sie nacheinander durch die Artikel. Prüfen Sie für jeden Artikel, ob das Hinzufügen seines Preises zu Ihrer laufenden Summe innerhalb des Budgets bleiben würde. Wenn ja, fügen Sie den Artikelnamen Ihrer Einkaufsliste hinzu und aktualisieren Sie die Gesamtsumme. Wenn ein Artikel das Budget überschreiten würde, überspringen Sie ihn und prüfen Sie die verbleibenden Artikel weiter.
Logik:
- Beginnen Sie mit einer laufenden Summe von
0.0und einem leeren Ergebnis-Array - Gehen Sie jeden Artikel per Index in einer Schleife durch
- Wenn die laufende Summe plus der Preis des aktuellen Artikels kleiner oder gleich dem Budget ist, fügen Sie den Artikelnamen zum Ergebnis hinzu und aktualisieren Sie die laufende Summe
- Wenn das Hinzufügen des Artikels das Budget überschreiten würde, überspringen Sie ihn und fahren Sie mit dem nächsten Artikel fort
- Geben Sie das Array der erschwinglichen Artikelnamen zurück
Parameter:
itemNames([String]): Array mit ArtikelnamenitemPrices([Double]): Array mit den entsprechenden Preisen (gleiche Länge wie itemNames)budget(Double): Der maximale Betrag, der ausgegeben werden kann
Rückgabewert: Ein Array mit Artikelnamen, die innerhalb des Budgets bezahlt werden können, in der Reihenfolge ihres Erscheinens ([String])
Beispiel:
// itemNames: ["Apple", "Bread", "Milk"]
// itemPrices: [2.0, 3.5, 4.0]
// budget: 6.0
// Result: ["Apple", "Bread"]
// (Apple costs 2.0, Bread costs 3.5, total is 5.5 which is within budget)
// (Milk would make total 9.5, which exceeds 6.0, so it's skipped)Probier es selbst
func whatToBuy(itemNames: [String], itemPrices: [Double], budget: Double) -> [String] {
// Schreibe hier den Code
}
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorZusammengesetzte ZuweisungWiederholung - Einfache MathematikVergleichsoperatoren7Grundlagen der Ein- und Ausgabe
Print-FunktionString-InterpolationReadLine-EingabeTypumwandlungWiederholung - Bis 120Wiederholung - Wahr oder Falsch10Funktionen
Eine Funktion deklarierenParameter und ArgumenteRückgabewerteArgument-LabelsWiederholung - Sigma-FunktionWiederholung - ValidierungsfunktionStandardwerte13Iterieren über Sequenzen
Iterieren über ElementeDie enumerate-MethodeIterieren über Strings Teil 1Iterieren über Strings Teil 22Variablen
Let vs. VarTyp-AnnotationenZahlenStringsBooleansBenennungskonventionenZusammenfassung – Variablen initialisieren5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung – Einfache LogikLogische Operatoren Teil 3Ternärer Operator8Rechnungs-Splitter
WillkommensnachrichtEingabe abfragen14Arrays für Fortgeschrittene
Array Slicing Teil 1Array Slicing Teil 2Sequenz-OperatorenDie Contains-Methode3Optionals
Was sind OptionalsUnwrapping mit If LetGuard LetNil-Coalescing-OperatorZusammenfassung – Sicheres Unwrapping6Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher TaschenrechnerSwitch-AnweisungSwitch mit Wertebereichen9Schleifen
For-In-SchleifeWhile-SchleifeRepeat-While-SchleifeBreakContinueWiederholung – FakultätBereiche in SchleifenVerschachtelte SchleifeWiederholung – Dynamische Eingabe