funktionen



  • Hallo,

    ich möchte in Function2 beim Aufruf funktion1 nicht nochmal nach eingabe gefragt werden. Sillte ich gleiche funktion mit void Rückgenwert schreiben? ist dieses Codefragment ok?

    int funktion1() {
    
    	int r = 0;
    	int l;
    
    	cout << "zahl eingeben: " << " ";
    	cin >> l;
    
    	r = l;
    	return r;
    }
    
    void function2(int t) {
    
    	int r= 0;
    	int l  = funktion1(); // hier sollte nicht nochmal nach eingabe gefragt werden.
    	if (r == l) {	
    		....
    		}
    }
    
    int main(void) {
    
    	int r = function1();
    		if (loggin_lvl == 0) // erfolgt eingabe von 0, dann andere Funktion, im Falle eines anderen zeichens sollte nicht passieren. 
    			anderefunction();		
    	}
    
    	return 0;
    }
    

    Danke und grüße



  • Speicher doch die Rückgabe von funktion1 und übergib sie funktion2 als Parameter.

    EDIT: In funktion1 kannst du die Variable r übrigens komplett wegkürzen, die brauchst du da nicht.


  • Mod

    Was soll man zu solch einer allgemeinen Frage noch antworten? Wenn deine Funktionen nicht das machen, was du gerne hättest, was sie machen sollen, dann müssen sie eben was anderes machen.

    Ich finde es jedenfalls befremdlich, wenn eine Funktion sowohl Benutzerinteraktion als auch Programmlogik beinhaltet. Das sind zwei Aufgaben die eher getrennt gehören. Eine Funktion sollte eine Aufgabe erfüllen und diese gut.



  • ich möchte abhängig der eingegebenen Wertes die zweite function2 ausführen.



  • babadu schrieb:

    ich möchte abhängig der eingegebenen Wertes die zweite function2 ausführen.

    Was heißt das?

    Du möchtest je nach eingegebenem Wert entweder funktion2 ausführen oder nicht?

    Oder heißt es, dass du funktion2 immer ausführen und darin den eingegebenen Wert verarbeiten willst?



  • ich möchte je nach eingegebenem Wert funktion2 entweder ausführen oder nicht.



  • Dann mach es doch einfach so, wie du willst.

    int result=funktion1();
    if(result==123) {
      funktion2();
    }
    

Anmelden zum Antworten