Römisch --> Arabisch

Römisch --> Arabisch

Beitragvon Cashdogg » 07.06.2010 15:37

Hallöchen,

ich hab hier mal einen Teil des Codes gepostet. Welche Aufgabe hat das return 0 ab Ende der Funktion. Diesen Rückgabewert hatte ich anfangs nämlich nicht und damit funktioniert die ganze Sache auch nicht.

Code: Alles auswählen
int value_of_rmchar (char Buchstabe)
{
   const char Roemisch[7]={'I', 'V', 'X', 'L', 'C', 'D', 'M'};
   const int Arabisch[7]={1, 5, 10, 50, 100, 500, 1000};

   for (int i=0; i<7; i++)
      if (to_upper(Buchstabe) == Roemisch[i])
         return Arabisch[i];
   return 0 ;
}


Gruß Cashdogg
Cashdogg
 
Beiträge: 408
Registriert: 20.12.2008 15:05

Re: Römisch --> Arabisch

Beitragvon PatrickM » 08.06.2010 15:20

Hi,

du hast deine Funktion mit einem int-Rückgabewert definiert:

Code: Alles auswählen
[b]int[/b] value_of_rmchar (char Buchstabe)
{
   if(..){
      return X;
   }

   return 0 ;
}


Deshalb muss die Funktion auch einen Wert zurückgeben, was dann mit der return-Anweisung geschieht. Wenn diese fehlt, dann meckert der Compiler natürlich.
Deine return-Funktion steht nun in einem If-Block drin. Das merkt der Compiler und meckert auch hier, denn er weiß, dass je nach Programmablauf, dieser If-Block vielleicht gar nicht aufgerufen wird und dann würde die Funktion ohne return dastehen.

Auf ein return kannst du prinzipiell nur verzichten, wenn du die Funktion mit dem Rückgabetyp void (=nichts) definierst.
Benutzeravatar
PatrickM
 
Beiträge: 154
Registriert: 29.10.2008 20:14


Zurück zu Programmieren

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron