C++ code ausbessern?

1 Antwort

  1. Mehrere der deklarierten Variablen (kilometer, kilometers, Km) werden gar nicht genutzt. Sie können also raus.
  2. Zuweisungen wie kilometers zu kilometer, miles zu mile oder mile zu input (der Wert wird eh darauffolgend wieder überschrieben) sind ohne Sinn.
  3. C++ hat explizit Datentypen (wie std::string), damit man C-Typen (wie const char*) nicht mehr wirklich braucht.
  4. Einige der Strings bei deinen Ausgaben (z.B. "mi" und " = " könnten direkt zu einem Literalwert verbunden werden. Das würde den Code an der Stelle auch einfacher lesbar gestalten.
  5. Bezüglich der Benamung deiner Variablen wäre es besser, einen einheitlichen camelCase-Stil zu wählen (km, factorKm). Der Name deiner Funktion sollte eindeutiger sein, sodass man bestenfalls ihren Körper nicht erst lesen muss, um zu verstehen, was sie tut. Auch der input-Variable würde ich einen eindeutigeren Namen spendieren (z.B. numberUnit).
  6. Der Rückgabetyp der Funktion ist (logisch betrachtet) falsch. Sie tut nichts, daher wäre void richtig. Die main-Funktion sollte stattdessen einen expliziten Rückgabewert zurückgeben.
  7. Die Bedingung input == mile ist nur wahr, wenn der Nutzer für input nichts eingibt.
Seal6 
Fragesteller
 20.12.2023, 07:20

mile und miles hab ich geschrieben, dass es egal ist ob man 1mile oder 100miles eingibt.

0
regex9  20.12.2023, 10:03
@Seal6

Dafür müsstest du input mit entsprechenden Werten vergleichen:

if (input == "mile" || input == "miles") {

Deine Variablen mile und miles hingegen zeigen auf leere Strings.

string mile;
cout << mile; // empty output ("")

Wenn du mit ihnen arbeiten wolltest, müsstest du ihnen entsprechende Werte geben und sie dann in die Prüfung einbauen.

string mile = "mile";
string miles = "miles";

if (input == mile || input == miles) {
  // ...
}
1