Beispiel:JS-nichtlinearer-programmablauf.html

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche
<!doctype html>
<html lang="de">
	<head>
		<meta charset="utf-8">
		<title>Nichtlinearer Programmablauf</title>
		<link rel="stylesheet" type="text/css" media="screen" href="./Beispiel:SELFHTML-Beispiel-Grundlayout.css" />
		<script>
"use strict";
document.addEventListener("DOMContentLoaded", function () {

	function start () {
		var alter = 0, minderjaehrig = false;

		// hier werden wir nichtlinear
		frage("Wie alt sind Sie?", weiter); // weiter ist eine Funktion s.u.
	}

	function frage (text, callback, braucheBool) {
		// Benutzer etwas fragen
		var alter;

		if (braucheBool) {

			alter = confirm(text); // das werden wir ersetzen

		} else {

			alter = prompt(text); // das werden wir ersetzen
		}

		callback(alter); // hier geht es mit Ergebnis weiter
	}

	function weiter (alter) {
		if (alter < 18) {

			frage(
				"Du bist also noch nicht erwachsen?",
				// hier definieren wir die callback-Funktion direkt
				function (minderjaehrig) {
					ende(alter, minderjaehrig);
				},
				true // benutze confirm anstelle von prompt
			);

		} else {

			ende(alter, false);
		}
	}

	function ende (alter, minderjaehrig) {
		// wir haben alter und minderjaehrig abgefragt
		alert(
			"Alter: " + alter + " ("
			+ (minderjaehrig ? "" : "aber nicht ")
			+ "minderjährig)"
		);
	}

	// Programm starten
	start();
});
		</script>
	</head>
	<body>
		<h1>Nichtlinearer Programmablauf</h1>
		<main>
			<p>Das folgende Programm verläuft nichtlinear.</p>
		</main>
	</body>
</html>