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
 | |
| }
 |