C# fakultät?
Habe eine Konsolenanwendung mit C# programmiert, welches die Fakultät einer Zahl rechnen soll. (Unten der Code). Hätte jemand eine Idee wie man das "schöner" bzw. einfacher programmieren könnte? Sollte nicht komplexer werden, also nur for/while etc. Schleifen oder if Schleifen beinhalten.
Console.Write("Zahl: ");
int zahl = Convert.ToInt32(Console.ReadLine());
int x = 1;
int y = x;
while(x <= zahl)
{
y *= x;
x++;
}
Console.Write("Fakultät!: " + y);
3 Antworten
Es gibt keine "if-Schleife". Eine Schleife ist eine Wiederholung eines Code-Blocks, ein if-Statement ist ein Block, der unter einer Bedingung ausgeführt wird.
Du könntest Deine While-Schleife durch eine for-Schleife ersetzen.
int y = 1;
for (int x = 1; x <= zahl; x++) y *= x;
Die for-Schleife ist halt die syntaktische Abkürzung für
int x = 1;
while (x <= zahl) {
...
x++;
}
Wenn man es GANZ genau nimmt, ist es in deinem Beispiel x 😂 aber ja, du hast Recht, auch wenn es hier nicht unbedingt um den Scope ging. In C# ist es sicher so, wie du schreibst. In C wäre ich nur gar nicht sicher, ob das so stimmt. Müsste ich mal testen.
Ach verdammt, da hab ich mir wohl ein x für ein i vormachen lassen. ^^
P.S.: Hab's bereits getestet. Zumindest der GCC behandelt den Fall exakt so.
Es gibt keine If-Schleifen!!
siehe http://if-schleife.de/
Das einzige was mir spontank einfällt wäre eine rekursive Funktion, aber das wäre auch nicht effizzienter/einfacher.
Du könntest Rekursion verwenden, aber so passt es auch.
if Schleifen
gibt es nicht.
Wenn man's GANZ genau nimmt eher dafür:
Immerhin ist die Variable i nur innerhalb des Geltungsbereiches der for-Schleife gültig.