131 lines
3.2 KiB
Plaintext
131 lines
3.2 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "802a389f-359a-42c8-8602-317bd18d5c96",
|
|
"metadata": {
|
|
"editable": false,
|
|
"slideshow": {
|
|
"slide_type": ""
|
|
},
|
|
"tags": []
|
|
},
|
|
"source": [
|
|
"## `while`-Schleife\n",
|
|
"\n",
|
|
"Eine `while`-Schleife hat - anders als die `for`-Schleife - lediglich eine Bedingung und führt die Anweisungen in der Schleife so lange aus, so lange die Bedingung erfüllt ist."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"id": "5af36a9c-5be8-457d-863d-46d85918fcf9",
|
|
"metadata": {
|
|
"editable": false,
|
|
"slideshow": {
|
|
"slide_type": ""
|
|
},
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"17\n",
|
|
"8.5\n",
|
|
"4.25\n",
|
|
"2.125\n",
|
|
"1.0625\n",
|
|
"Nach der Schleife ist x = 0.53125\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"let x = 17\n",
|
|
"\n",
|
|
"while ( x > 1 ) {\n",
|
|
" console.log(x)\n",
|
|
" x = x / 2\n",
|
|
"}\n",
|
|
"\n",
|
|
"console.log(\"Nach der Schleife ist x = \" + x)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "19d1ca71-6286-4ed6-bedd-c953c2b67906",
|
|
"metadata": {
|
|
"editable": false,
|
|
"slideshow": {
|
|
"slide_type": ""
|
|
},
|
|
"tags": []
|
|
},
|
|
"source": [
|
|
"Am Beispiel sehen wir, dass die Schleife läuft, solange die Bedingung `x > 1` erfüllt ist. Sobald `x` kleiner ist als 1 bricht die Schleife ab."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "9b887033-e9d7-4a98-aaf8-48e115f09093",
|
|
"metadata": {
|
|
"editable": false,
|
|
"slideshow": {
|
|
"slide_type": ""
|
|
},
|
|
"tags": []
|
|
},
|
|
"source": [
|
|
"## `for` vs. `while`\n",
|
|
"\n",
|
|
"Eine `for`-Schleife kann man auch als `while`-Schleife (und umgekehrt) schreiben:\n",
|
|
"\n",
|
|
"```\n",
|
|
"for ( let i = 0 ; i < 10 ; i++) {\n",
|
|
" [...]\n",
|
|
"}\n",
|
|
"```\n",
|
|
"\n",
|
|
"entspricht in `while`-Schreibweise:\n",
|
|
"\n",
|
|
"```\n",
|
|
"let i = 0 // Initialisierung vor dem ersten Schleifendurchlauf\n",
|
|
"while ( i < 10 ) { // Bedingung\n",
|
|
" [...]\n",
|
|
" i++ // Aktualisierung nach jedem Schleifendurchlauf\n",
|
|
"}\n",
|
|
"```\n",
|
|
"\n",
|
|
"## Wann nutzt man `for`, wann `while`?\n",
|
|
"\n",
|
|
"In der Regel nutzt man eine `for`-Schleife, wenn zum Start des ersten Schleifendurchlaufes bereits feststeht, wie oft die Schleife durchlaufen werden muss.\n",
|
|
"\n",
|
|
"**Beispiel:** Es sollen 10 Zahlen ausgegeben werden.\n",
|
|
"\n",
|
|
"Eine `while`-Schleife nutzt man hingegen normalerweise, wenn die genaue Anzahl noch nicht bekannt ist und die Schleifenbedingung durch die Schleife selbst verändert.\n",
|
|
"\n",
|
|
"**Beispiel:** Ein Kunde bezahlt (mit Bargeld), der Bezahlvorgang läuft so lange, bis der komplette Betrag beglichen ist."
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Deno",
|
|
"language": "typescript",
|
|
"name": "deno"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": "typescript",
|
|
"file_extension": ".ts",
|
|
"mimetype": "text/x.typescript",
|
|
"name": "typescript",
|
|
"nbconvert_exporter": "script",
|
|
"pygments_lexer": "typescript",
|
|
"version": "5.8.3"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|