2017-05-10 3 views
0

Ich weiß derzeit nicht viel über Nebenwirkungen in der Programmierung, also war ich neugierig, ob mein Code unten irgendwelche Nebenwirkungen hat.Nebenwirkungen auf meinen Code

class Factorial { 

    static int factorial(int n) {  
     if (n == 0)  
     return 1;  
     else  
     return(n * factorial(n-1));  
    } 

    public static void main(String args[]) { 
     int number = 4; // It is the number to calculate factorial  
     int fact = factorial(number); 
     System.out.println("Factorial of " + number + " is: " + fact);  
    } 

} 
+1

Factorial reine Funktion ist, ohne irgendwelche Nebenwirkungen. –

+0

Was meinst du mit Nebenwirkungen genau? –

+0

Meinst du, ob deine faktorielle Funktion glücklicherweise eine negative Zahl zurückgibt, anstatt eine Ausnahme auszulösen, wenn ihre Eingabe zu groß ist? Ja, dieser Nebeneffekt existiert. – phatfingers

Antwort

1

factorial hat keine Nebenwirkungen, weil sie einen Wert berechnet und gibt es zurück, ohne etwas außerhalb der Funktion zu verändern. main, auf der anderen Seite, hat die Nebenwirkung des Faktors zu drucken. Dies ist ein gutes Design, da die factorial Funktion keine Nebenwirkungen haben sollte; es sollte nur die Fakultät berechnen.

Siehe https://softwareengineering.stackexchange.com/questions/40297/what-is-a-side-effect