Bedingter Javascript-Operator. Bedingte Anweisungen in Javascript - IF-ELSE-Konstrukt - Bedingungen in Javascript - Grundlagen. Andere Bedingungen in JavaScript

Steueranweisungen sind Anweisungen, die die Ausführung von Programmcode steuern. Typischerweise wird der ausführbare Code in einer Steueranweisung als Hauptteil dieser Anweisung bezeichnet.

Steueranweisungen können verschachtelt oder in anderen Steueranweisungen verwendet werden.

Bedingte Anweisungen

Standardmäßig führt der JavaScript-Interpreter Anweisungen nacheinander in der Reihenfolge aus, in der sie im Quellcode erscheinen. In Fällen, in denen die Ausführung oder Nichtausführung einiger Anweisungen von der Erfüllung oder Nichterfüllung einer bestimmten Bedingung abhängen muss, werden bedingte Anweisungen verwendet.

If-Anweisung

Die if-Anweisung hat zwei Formen. Die Syntax für das erste Formular lautet:

Der Ausdruck in Klammern wird aufgerufen ausführungsbedingung wenn Aussagen oder Bedingungen kurz. Der Wert des Ausdrucks wird zuerst ausgewertet. Der resultierende Wert wird bei Bedarf implizit in einen booleschen Typ konvertiert. Wenn der Ausdruck true ergibt, wird die Anweisung ausgeführt. Wenn der Ausdruck false zurückgibt, wird die Anweisung nicht ausgeführt:

If (true) alert ("Abgeschlossen!"); if (false) alert ("Wird nicht ausgeführt!");

Mit der if-Syntax können Sie nur eine Anweisung ausführen. Wenn Sie jedoch mehr als eine Anweisung ausführen müssen, müssen Sie eine zusammengesetzte Anweisung verwenden:

If (true) (var str \u003d "Hallo!"; Alert (str);)

Die Syntax für die zweite Form lautet:

If (Ausdrucks-) Anweisung; sonst Aussage;

Mit dem Schlüsselwort else können Sie eine Anweisung hinzufügen, die ausgeführt werden soll, wenn die Bedingung falsch ist:

If (false) alert ("Wird nicht ausgeführt"); sonst alert ("Execute");

Wie bereits erwähnt, können Steueranweisungen verschachtelt werden, sodass Sie die folgenden Konstrukte erstellen können:

Var num \u003d 2; if (num \u003d\u003d 1) (alert ("num value:" + num);) else if (num \u003d\u003d 2) (alert ("num value:" + num);) else (alert ("Ich kenne eine solche Nummer nicht) ! ");)

Dieser Code hat nichts Besonderes. Es ist einfach eine Folge von Anweisungen, wobei jede if-Anweisung Teil des else der vorherigen if-Anweisung ist. Auf den ersten Blick scheint diese Form der Notation nicht ganz klar zu sein. Betrachten Sie daher eine syntaktisch äquivalente Form, die die Verschachtelung von if-Anweisungen zeigt:

Var num \u003d 2; if (num \u003d\u003d 1) (alert ("num value:" + num);) else (if (num \u003d\u003d 2) (alert ("num value:" + num);) else (alert ("Ich weiß das nicht) Zahlen! ");))

In diesem Beispiel deklarieren wir zunächst vier Variablen mit dem Schlüsselwort var und weisen ihnen sofort numerische Werte zu. Als nächstes ändern wir mit den Operatoren Inkrementieren und Dekrementieren die Werte der Zahlen. Informationen werden mit der Funktion angezeigt Echo (siehe Artikel ""). Um den Namen des Objekts nicht noch einmal zu schreiben, habe ich die Konstruktion verwendet mit ().

Logische Operatoren

Bei der Überprüfung der Bedingung werden logische Operatoren verwendet. Um mich nicht zu wiederholen, werde ich eine Abkürzung verwenden: Der linke Operand ist LO und der rechte Operand ist P.O.

  • && - Logisches "UND"
  • || - "ODER"
  • ! - "NICHT"
  • \u003e - L.O. mehr P.O.
  • \u003e \u003d - L.O. ist größer oder gleich P.O.
  • < - Л.О. меньше П.О.
  • <= - Л.О. меньше или равен П.О.
  • \u003d\u003d - L.O. gleich P.O.
  • ! \u003d - L.O. ist nicht gleich P.O.
  • | \u003d - L.O. gleich sich selbst ODER P.O.
  • & \u003d - L.O. gleich mir UND P.O.
  • ^ \u003d - EXKLUSIV ODER

Betrachten Sie nun das folgende Skript:

//***************************************** // logische Operationen // logik_if_else.js //***************************************** var a \u003d 10, b \u003d 100, WshShell, Titel, msg1, msg2, msg3, msg4, vbInformation \u003d 64; // Eine Instanz der WScript.Shell-Klasse erstellen WshShell \u003d WScript.CreateObject ("WScript.Shell"); Titel \u003d "Arbeiten mit IF ELSE JS Conditional Statement";; mit (WshShell) (wenn (a\u003e \u003d 5 && a<= 100 ) //истина msg1 = "TRUE" ; else msg1 = "FALSE" ; Popup (msg1, 5 , title, vbInformation) ; if (a>\u003d 5 || b \u003d\u003d 100) // true msg2 \u003d "TRUE"; sonst msg2 \u003d "FALSE"; Popup (msg2, 5, title, vbInformation); // bedingte Anweisung js falls sonst if (! a) // false msg3 \u003d "TRUE"; sonst msg3 \u003d "FALSE"; Popup (msg3, 5, title, vbInformation); if (a & \u003d 100) // false msg4 \u003d "TRUE"; sonst msg4 \u003d "FALSE"; Popup (msg4, 5, title, vbInformation); )

Wie im vorherigen Skript habe ich hier die Konstruktion verwendet mit um den Programmcode zu verkürzen. Zur Anzeige von Informationen haben wir jedoch die Funktion verwendet Aufpoppen (siehe Artikel ""). Infolgedessen werden die Dialogfelder nach einigen Sekunden automatisch geschlossen. Bitte beachten Sie, dass wir in diesem Beispiel keine geschweiften Klammern verwendet haben. In der bedingten Anweisung js if sind sie nur relevant, wenn Sie mehr als eine, aber mehrere Codezeilen ausführen müssen.

Schauen wir uns zum Schluss ein praktisches Beispiel an, wie das Lösen einer quadratischen Gleichung:

// Eine quadratische Gleichung lösen // uravnenije_if_else.js // *********************************************************** var a, b, c, d, x, x1, x2; // Variablen deklarieren a \u003d - 2; b \u003d 6; c \u003d 20; // Suche nach Diskriminanten d \u003d Math .pow (b, 2) - 4 * a * c; if (d \u003d\u003d 0) (x \u003d b / (2 * a); msg \u003d "Die Gleichung hat eine Lösung, x ist genau" + x) sonst (wenn (d\u003e 0) (x1 \u003d (- b + Math .sqrt (d)) / (2 * a); x2 \u003d (- b - Math .sqrt (d)) / (2 * a) ; msg \u003d "Die Gleichung hat genau zwei Lösungen \\ n x1" + x1 + " \\ n x2 genau " + x2; // bedingte Anweisung wenn sonst js ) else msg \u003d "Keine Lösung"; ) WScript.Echo (msg);

var a \u003d 10; var b \u003d (a\u003e 1)? 100: 200; Alarm (b);

Wenn die Bedingung a\u003e 1 ist wahr, dann die Variable b Wert zuweisen 100 Andernfalls wird der Variablen b der Wert zugewiesen 200 .

Js Aufgabe 3_4. Code-Vervollständigung: 3 lokale Variablen werden mit dem Schlüsselwort var deklariert. Es ist notwendig, der Variablen max den Wert des folgenden ternären Operators zuzuweisen: Wenn a größer als b ist, geben wir a zurück, andernfalls geben wir b zurück.
Codeausschnitt:

if (a * b< 6) { result = "Мало"; } else { result = "Много"; }


Fragen zur Selbstkontrolle:

  1. Wie lautet die Syntax für den ternären Operator?
  2. Wie viele Argumente hat der ternäre Operator?

Operator in JavaScript wechseln - wechseln

Die Javascript-switch-Anweisung wird verwendet, um eine Variable auf mehrere Werte zu testen:

Syntax:

switch (Variable oder Ausdruck) (case Option 1: // .. Anweisungsblock .. break case Option 2: // .. Anweisungsblock .. break default: // .. Anweisungsblock ..)

Der Wert einer Variablen oder eines Ausdrucks wird überprüft: in jedem fall Einer der Werte wird bei einem geeigneten Wert auf den einen oder anderen Anweisungsblock geprüft, der dem gegebenen entspricht fall.

Der Block, der mit dem Standardwort service beginnt, kann weggelassen werden. Blockanweisungen werden ausgeführt, wenn keiner der aufgelisteten Werte insgesamt vorhanden ist fall ungeeignet.

Wichtig: Die break-Anweisung ist nach jedem berücksichtigten Wert der Variablen (nach jedem) erforderlich fall); Wenn Sie es nicht verwenden, werden alle unten aufgeführten Operatoren angezeigt

Vergleiche mit dem Operator WENN:

var a \u003d 2; Schalter (a) (Fall 0: // wenn (a \u003d\u003d\u003d 0) Fall 1: // wenn (a \u003d\u003d\u003d 0) Alarm ("Null oder Eins"); // dann Ausgabe ... Pause; Fall 2: // if (a \u003d\u003d\u003d 2) alert ("Two"); // dann display ... break; default: // else alert ("Many"); // sonst display ...)

Wie gruppiere ich mehrere Optionen?

Um dieselben Operatoren auszuführen, können mehrere gruppiert werden fall... Wie im obigen Beispiel:

Fall 0: Fall 1: Alarm ("Null oder Eins"); Unterbrechung; ...

Mit a \u003d 0 und a \u003d 1 wird dieselbe Anweisung ausgeführt: alert ("Null oder Eins");

Beispiel 4: Fordern Sie den Benutzer auf, eine Farbe einzugeben. Zeigen Sie die englische Übersetzung der eingegebenen Farbe an. Für Farbe "Blau" und "Blau" Geben Sie den gleichen Wert zurück.


✍ Lösung:
  • Erstellen Sie eine Webseite mit HTML-Skelett und Tag skript.
  • Initialisieren Sie eine Variable farbe
  • var color \u003d prompt ("Welche Farbe?");

    var color \u003d prompt ("Welche Farbe?");

  • Überprüfen Sie den Wert einer Variablen mit dem Konstrukt switсh, Ausgabe für jeden Wert - die entsprechende Übersetzung:
  • schalter (Farbe) (Fall "rot": Alarm ("rot"); Pause; Fall "grün": Alarm ("grün"); Pause; // ...

    Wenn die Variable farbehat den Wert "rot", zeigt dann die Übersetzung im modalen Fenster - "rot" an und beendet die Konstruktion (break;). Wenn die Variable farbe hat den Wert "grün", zeigt dann die Übersetzung im modalen Fenster - "grün" an und beendet die Konstruktion (break;).

  • Für Blumen "Blau" und "Blau" mache die Gruppierung:
  • // ... case "blue": case "blue": alert ("blue"); Unterbrechung; // ...

    Wenn die Variable farbeist blau oder variabel farbehat den Wert "blau", zeigt dann die Übersetzung im modalen Fenster - "blau" an und beendet die Konstruktion (break;).

  • Organisieren Sie die Ausgabe für die Farben, die nicht vom Programm bereitgestellt werden:
  • // ... default: alert ( "Wir haben keine Informationen zu dieser Farbe")) // Endschalter

    // ... default: alert ("y wir haben keine Informationen zu dieser Farbe")) // Endschalter

  • Testen Sie das Skript in einem Browser.

Js Aufgabe 3_6. Suchen und beheben Sie Fehler im folgenden Codefragment:

14 15 16 17 var number \u003d prompt ( "Geben Sie die Nummer 1 oder 2 ein:"); switch (number) (case "1" (document.write ("One");); break; case "2" (document.write ("Two");); break; default (document.write () "Sie haben einen anderen Wert als 1 und 2 eingegeben.") ; } ; }

var number \u003d prompt ("Geben Sie die Nummer 1 oder 2 ein:"); switch (number) (case "1" (document.write ("One");); break; case "2" (document.write ("Two");); break; default (document.write ("Sie haben eingegeben) ein anderer Wert als 1 und 2 "););)


Js Aufgabe 3_7. Was wird auf dem Bildschirm angezeigt, wenn der folgende Code ausgeführt wird?

1 2 3 4 5 6 7 8 9 10 11 12 13 var value \u003d "2"; switch (value) (case "1": case "2": case "3": document.write ("Hello"); break; case "4": case "5": document.write ("World"); Standard: document.write ("Fehler");)

var value \u003d "2"; switch (value) (case "1": case "2": case "3": document.write ("Hello"); break; case "4": case "5": document.write ("World"); Standard: document.write ("Fehler");)


Js Aufgabe 3_8. Der Benutzer wird aufgefordert, eine Nummer einzugeben - die Anzahl der Krähen auf dem Zweig. Zeigen Sie abhängig von der eingegebenen Nummer (nicht mehr als 10) die folgende Meldung an: - Sitzen auf einem Zweig 1 Krähe - Sitzt auf einem Ast 4 Krähen - Sitzt auf einem Ast 10 Krähen

  1. Abhängig von der eingegebenen Nummer ändert sich das Ende des Wortes "Krähe".
  2. Verwenden Sie zur Überprüfung den Javascript-Operator Switch.
  3. Speichern Sie diese Seite im Ergebnisordner (sie ist nützlich für weitere Arbeiten).


Fragen zur Selbstkontrolle:

  1. Wann ist es ratsam, die Konstruktion als bedingten Operator zu verwenden? schalter?
  2. Wofür ist der Standardblock in der Anweisung? schalter?
  3. Ist es obligatorisch, die break-Anweisung in der Konstruktion zu verwenden? schalter?
  4. Wie die Gruppierung für mehrere Wertvarianten in einem Operator durchgeführt wird schalter?

Zyklische Operatoren der JavaScript-Sprache - Für

Syntax:

für (Anfangswert des Zählers; Bedingung; Inkrement des Zählers) (//.. Block von Anweisungen ..)

Wichtig: Eine Schleife in Javascript für wird verwendet, wenn im Voraus bekannt ist, wie oft zyklische Aktionen wiederholt werden sollen (wie viele Iterationen die Schleife hat).

  • Ein Zuweisungsausdruck wird als Anfangswert des Iterationszählers verwendet: Beispiel: i \u003d 0 - Der Schleifenzähler beginnt bei Null:
  • für (var i \u003d 0; Bedingung; Zählerinkrement) (//.. Block von Anweisungen ..)

  • Als Zählerinkrement wird der Schritt angegeben, mit dem der Zähler erhöht werden soll: Zeigt beispielsweise an, dass jede Iteration der Schleife von ihrer Erhöhung um begleitet wird 1 :
  • for (var i \u003d 0; Bedingung; i ++) (//.. Block von Anweisungen ..)

  • Die Schleifenbedingung ist der Endwert des Zählers: Beispiel: i10 stoppt die Schleife:
  • für (var i \u003d 0; i<10; i++) { //..блок операторов.. }

Schauen wir uns ein Beispiel für die Verwendung einer for-Schleife in Javascript an:

Beispiel 5: Drucken Sie eine Folge von Zahlen 0 1 2 3 ... 9 , jede Ziffer in einer neuen Zeile. 0 1 2 ... 8 9


✍ Lösung:
  • Um eine Folge von Zahlen anzuzeigen, verwenden wir den Zähler der for-Schleife, dessen Wert von geändert werden soll 0 Vor 9 entsprechend der Reihenfolge.
  • Daher für der Anfangswert des Zykluszählers Setzen Sie den Wert auf 0 ;; als zyklusbedingungen setze den Endwert - ii \u003d 9; Gegenschritt muss sein 1 (i ++) da der Unterschied zwischen den Mitgliedern der Sequenz eins ist:
  • für (var i \u003d 0; i<10; i++) { document.write(i+"
    "); }

    Im Beispiel werden die Werte des Schleifenzählers auf dem Bildschirm angezeigt, da das Inkrement des Zählers i ++ auf dem Bildschirm angezeigt wird 0 1 2 3 ... 9 , mit jeder Ziffer in einer neuen Zeile (Tag
    ).

  • Testen Sie das Skript in einem Browser.

Js Aufgabe 3_9. 1 Vor 15 .

  1. Verwenden Sie einen Schleifenzähler als Folge von Zahlen zum.
  2. Verwenden Sie für eine Addierervariable die Variablenkennung summe.

Codeausschnitt:

Für (var i \u003d ...; ...; ...) (sum \u003d sum + ...;) ...

Loop-Exit-Anweisungen unterbrechung und fortsetzen in JavaScript. Operator Ausgang

Die break-Anweisung unterbricht die Ausführung des gesamten Schleifenkörpers, d.h. bricht in JavaScript aus der Schleife aus.

Die continue-Anweisung unterbricht zwar die Ausführung der aktuellen Schleifeniteration, setzt aber gleichzeitig die Schleifenausführung ab der nächsten Iteration fort.

Betrachten wir die Funktionsweise der break- und continue-Anweisungen anhand eines Beispiels:

Beispiel: Analysieren Sie den Algorithmus des Code-Snippets. Was wird angezeigt?

Codeausschnitt:

1 2 3 4 5 6 für (var i \u003d 0; i< 10 ; i++ ) { if (i== 4 ) continue ; document.write (i+ "
"); if (i \u003d\u003d 8) break;)

für (var i \u003d 0; i<10;i++) { if (i==4) continue; document.write(i+"
"); if (i \u003d\u003d 8) break;)


✍ Lösung:
  • Die dritte Zeile des Beispiels enthält eine Bedingung, aufgrund derer die Ziffer 4 wird nicht angezeigt: operator fortsetzenfährt mit der nächsten Iteration der Schleife fort, ohne die aktuelle zu vervollständigen.
  • In Zeile Nr. 5 wird die Schleife verlassen, aber die Nummer 8 wird angezeigt, da die Ausgabeanweisung vor der Bedingung steht (in der 4. Zeile). Sich getroffen zu haben unterbrechungbeendet der Interpreter die Schleife.
  • Damit Der Bildschirm zeigt: 0 1 2 3 5 6 7 8 - jede Ziffer in einer neuen Zeile.

Js Aufgabe 3_10. Geben Sie die Summe aller Ganzzahlen aus aus 1 Vor 15 , ausgenommen von der Gesamtzahl 5 und 7 .

Anweisung beenden

Die Javasctipt-Sprache bietet einen Exit-Operator aus dem Programmcode - den Exit-Operator.
Am häufigsten wird der Operator verwendet, um Benutzereingabefehler zu beseitigen.


Betrachten wir ein Beispiel:

Beispiel 6: Fordern Sie den Benutzer auf, eine Nummer einzugeben. Wenn keine Nummer eingegeben wird, wird die Meldung angezeigt "Du brauchst eine Nummer!" und stoppen Sie das Programm.


✍ Lösung:
  • Initialisieren Sie eine Variable nummer der vom Benutzer in das Modal eingegebene Wert:
  • var number \u003d prompt ("Geben Sie eine Nummer ein");

  • Überprüfen Sie mit der Funktion parseInt, ob eine Zeichenfolge in eine Ganzzahl konvertiert wird, ob der eingegebene Wert eine Zahl ist:
  • number \u003d parseInt (number); // gibt NaN zurück - keine Zahl

    Wenn keine Zahl eingegeben wird, gibt die Funktion den Wert NaN (aus dem Englischen) zurück. keine Nummer - keine Nummer).

  • Überprüfen Sie den Wert der Variablen nummer Verwenden der isNaN-Funktion:
  • x \u003d isNaN (Zahl); // gibt true zurück, wenn der Wert nicht numerisch ist

    Die IsNaN-Funktion gibt einen Wert zurück wahr falls die Variable keine Zahl ist

  • Durch die Regel der "Lügen" veranlassen, dass der Wert der Variablen überprüft wird x... Wenn der Wert nicht numerisch ist, drucken Sie eine entsprechende Notiz und beenden Sie das Programm:
  • if (x) (alert ("Du brauchst eine Nummer!"); exit; // beende das Programm)

  • Um das Programm fortzusetzen (wenn der eingegebene Wert eine Zahl war), zeigen Sie das folgende Fenster mit einer Eingabeaufforderung an:
  • alert ("Geben Sie die zweite Nummer ein"); // Wenn Sie eine Nicht-Nummer eingeben, wird die Anweisung nicht ausgeführt

  • Testen Sie das Skript in einem Browser.

Fragen zur Selbstkontrolle:

  1. Listen Sie drei Schleifenparameter auf zum und erklären ihren Zweck.
  2. Welche Operatoren sollen die Schleife verlassen und unterbrechen? Nennen Sie Beispiele für ihre Verwendung.
  3. Wofür der Bediener ist ausfahrt?

Ist es möglich, mehrere Zähler in einem FOR zu haben?

Eine interessante Arbeit mit der for-Schleife ist mit möglich möglich gleichzeitig zwei Zähler in einem Zyklus.
Betrachten wir ein Beispiel:

Beispiel 7: Drucken Sie mit dem Skript die folgenden Variablen-Wert-Paare in drei Zeilen: i \u003d 0 j \u003d 2 i \u003d 1 j \u003d 3 i \u003d 2 j \u003d 4


✍ Lösung:
  • Organisieren Sie in der for-Schleife zwei Zähler: counter i, um die Sequenz auszugeben 0 1 2 , Zähler j zur Ausgabe der Sequenz 2 3 4 :
  • 1 2 3 für (i \u003d 0, j \u003d 2; i< 10 , j< 5 ; i++, j++ ) { }

    für (i \u003d 0, j \u003d 2; i<10, j<5; i++, j++) { }

    Jeder der drei Parameter der for-Schleife hat jetzt zwei Werte, die aufgelistet sind komma getrennt (Zum Beispiel der erste Parameter mit zwei Werten: i \u003d 0, j \u003d 2). Die Parameter selbst werden aufgelistet semikolon getrennt(;).

  • Verwenden Sie für die Ausgabe in jeder Zeile das Tag
    :
  • 1 2 3 4 für (i \u003d 0, j \u003d 2; i< 10 , j< 5 ; i++, j++ ) { document.write ("
    i \u003d ", i," j \u003d ", j);)

    für (i \u003d 0, j \u003d 2; i<10, j<5; i++, j++) { document.write("
    i \u003d ", i," j \u003d ", j);)

On-the-Fly-Seitengenerierung: Wie ist das?

Betrachten Sie vor der nächsten Aufgabe ein Beispiel hTML-Seite dynamisch erstellen mit Javascript.

Beispiel 8:

  • Abhängig von den vom Benutzer eingegebenen Daten müssen auf der Webseite dynamisch Listen mit Aufzählungszeichen und Nummern generiert werden: Fordern Sie den Benutzer zur Eingabe auf listenansicht (nummeriert (Nummer 1) oder beschriftet (Nummer 2)) und dann anzahl der Listenelemente.
  • Zeigen Sie je nach Antwort die Tags einer Liste mit Aufzählungszeichen oder einer Nummer mit der erforderlichen Anzahl von Elementen an.
  • Wenn ein nicht vorhandener Listentyp eingegeben wird, wird die Meldung angezeigt "Bitte geben Sie den richtigen Typ ein!" und beenden Sie das Programm ().

Erinnern wir uns an die Tags:
nummerierte Listen-Tags:

<ol\u003e <li\u003e <li\u003e <li\u003e </ ol\u003e

listen-Tags mit Aufzählungszeichen:

var listType \u003d prompt ("Geben Sie" 1 "für eine Liste mit Aufzählungszeichen ein," 2 "für eine nummerierte Liste");

  • Überprüfen Sie den eingegebenen Wert: Für eine nummerierte Liste (Nummer 1) geben Sie das Tag aus
      , für markiertes (Nummer 2) - Tag
        ... Wenn Sie einen anderen Wert eingegeben haben, drucken Sie eine Notiz und beenden Sie das Programm:

            ") else (alert (" Geben Sie den richtigen Typ ein "); exit;)

          • Initialisieren Sie eine Variable kolvo der vom Benutzer in das Modal eingegebene Wert:
          • var kolvo \u003d Eingabeaufforderung ("Geben Sie die Anzahl der Elemente ein");

          • Verwenden Sie die Funktion parseInt, um einen Zeichenfolgenwert in einen numerischen Wert umzuwandeln:
          • für (var i \u003d 1; i<=kolvo; i++) document.write("");

          • Da die Listen je nach Listentyp mit den entsprechenden Tags geschlossen werden, drucken Sie die schließenden Tags:
          • if (listType \u003d\u003d "1") document.write ("") else if (listType \u003d\u003d" 2 ") document.write ("" ) ;

            if (listType \u003d\u003d "1") document.write ("

        ") else if (listType \u003d\u003d" 2 ") document.write ("
      ");

    1. Testen Sie das Skript in einem Browser.
    2. Js Aufgabe 3_11.
      Schreiben Sie ein Skript, das Tags anzeigt eingang(Steuerelemente) unterschiedlicher Art, abhängig von der eingegebenen Ziffer:

      1 - textfeld,
      2 - taste,
      3 - radio(Schalter).

      Die Anzahl der angezeigten Tags sollte ebenfalls angefordert werden.

      Erinnern wir uns an die Tags:

      Für 1 - Textfeld: Für 2 - Tasten: Für 3 - Radio:

      Ausgabebeispiel:

      Js Aufgabe 3_12. Zeichnen Sie ein 9x9-Schachbrett mit Javascript für Schleifen. "Zeichnen" sollte das Board HTML-Tags für die Tabelle sein:

      Erinnern wir uns an die Tags:

      <tabellenrand \u003d "1" Breite \u003d "30%"\u003e <tr\u003e <td\u003e-</ td\u003e -</ td\u003e </ tr\u003e </ table\u003e

      --

      • Um 9 Linien zu zeichnen, müssen Sie eine externe for-Schleife mit einem Zähler i organisieren.
      • Um 9 Zellen in jeder Zeile zu zeichnen, müssen Sie eine innere (verschachtelte) for-Schleife mit einem Zähler j organisieren.
      • Verwenden Sie die document.write-Methode, um Zellen- und Zeilen-Tags zu rendern.

      Ergebnis:

      Zusätzlich:

      1. Drucken Sie die Multiplikationstabelle mit den Schleifenzählern (i und j) in die Tabellenzellen.
      2. Zeigen Sie die erste Zeile und die erste Spalte mit einem roten Hintergrund an (das Attribut bgcolor table cell):
        <td bgcolor \u003d "rot"\u003e-</ td\u003e

        -

      Ergebnis:


      Fragen zur Selbstkontrolle:

      1. Erklären Sie, was dynamisches Erstellen von Seiten bedeutet.
      2. Was ist das am häufigsten verwendete Sprachkonstrukt für die dynamische Seitenerstellung?

      Zyklische Anweisungen der JavaScript-Sprache - While

      Die Syntax für die while-Anweisung lautet:

      while (Bedingung) (//..Block of Statements ..);

      Beispiel: Zeigen Sie Potenzen von zwei bis zu 1000 (2, 4, 8 ... 512). Verwenden Sie die alert () -Methode


      ✍ Lösung:
      • Auflistung des Skripts:
      • 1 2 3 4 5 var a \u003d 1; während ein< 1000 ) { a*= 2 ; alert(a) ; }

        var a \u003d 1; während ein< 1000){ a*=2; alert(a); }

        a * \u003d 2 → die Operation der zusammengesetzten Zuordnung wird verwendet: das mit der Zuordnung kombinierte Produkt, d.h. gleich wie a \u003d a * 2

      • Testen Sie das Ergebnis in einem Browser.

      Wie funktionieren die Anweisungen break und continue in einer while-Schleife?

      Beispiel:

      var a \u003d 1; während ein< 1000 ) { a*= 2 ; if (a== 64 ) continue ; if (a== 256 ) break ; alert(a) ; }

      var a \u003d 1; während ein< 1000){ a*=2; if (a==64) continue; if (a==256) break; alert(a); }

      Zweierpotenzen werden an ausgegeben 128 inklusive und der Wert 64 wird übersprungen. Jene. In den Dialogfeldern sehen wir: 2 4 8 16 32 128

      Js Aufgabe 3_13. Welche Werte werden im folgenden Code-Snippet angezeigt?

      var counter \u003d 5; während (Zähler< 10) { counter++; document.write("Counter " + counter); break; document.write("Эта строка не выполнится."); }


      Js Aufgabe 3_14. Schreiben Sie den Erektionscode x soweit ymit einer while-Schleife. Fragen Sie Variablenwerte ab und geben Sie das Ergebnis mit alert () aus.

      Vervollständigen Sie den Code:

      1 2 3 4 5 6 7 8 9 var x \u003d ...; var y \u003d ...; Zähler \u003d 1; chislo \u003d x; while (...) (chislo \u003d x * ...; counter \u003d ...;) alert (chislo);

      var x \u003d ...; var y \u003d ...; Zähler \u003d 1; chislo \u003d x; while (...) (chislo \u003d x * ...; counter \u003d ...;) alert (chislo);

      A Korrigieren Sie den Fehler im Programm, mit dem die Fakultät einer Zahl ermittelt werden soll:

      1 2 3 4 5 6 7 8 9 10 11 12 13 var counter \u003d prompt ("Geben Sie eine Nummer ein"); var Fakultät \u003d 1; document.write ( "Zahlenfaktor:" + counter + "! \u003d"); do (if (Zähler \u003d\u003d 0) (Fakultät \u003d 1; Pause;) Fakultät \u003d Fakultät / Zähler; Zähler \u003d Zähler + 1;) while (Zähler\u003e 0); document.write (Fakultät);

      var counter \u003d prompt ("Geben Sie eine Nummer ein"); var Fakultät \u003d 1; document.write ("Zahlenfaktor:" + Zähler + "! \u003d"); do (if (Zähler \u003d\u003d 0) (Fakultät \u003d 1; Pause;) Fakultät \u003d Fakultät / Zähler; Zähler \u003d Zähler + 1;) while (Zähler\u003e 0); document.write (Fakultät);


      Js Aufgabe 3_16. Ändern Sie das Programm für Benutzereingaben:

      Fordern Sie zur Eingabe eines Benutzernamens auf, bis der Benutzer tatsächlich einen Namen eingibt (d. H. Das Feld ist tatsächlich ausgefüllt und die Abbrechen-Taste wird nicht gedrückt). Wenn der Name eingegeben wird, wird ausgegeben "Hallo Name!"... Dokument.

      Wie finde ich Fehler in Javascript?

      In einigen Fällen funktioniert der Code auf der Seite aus irgendeinem Grund nicht. Wo soll nach dem Fehler gesucht werden? In solchen Fällen können Sie die Anweisung try..catch verwenden.

      Die Anweisung try..catch versucht, einen Code auszuführen. Wenn der Code einen Fehler enthält, kann ein Fehler auf dem Bildschirm angezeigt werden.
      Der Fehler wird im e.message-Objekt gespeichert.

      Betrachten wir die Arbeit des Bedieners anhand eines Beispiels:

      Beispiel: Schreiben Sie eine Anweisung mit einem Fehler im Programm. Überprüfen Sie den vermuteten fehlerhaften Code auf einen Fehler: Wenn der Code einen Fehler enthält, zeigen Sie eine Meldung an "Fehlerbehandlung: Fehlername"... Nachdem Sie den fehlerhaften Operator überprüft haben, geben Sie die Nachricht aus, unabhängig davon, ob ein Fehler im Code vorliegt "Aktionen beenden"


      ✍ Lösung:
      • Als fehlerhafte Nachricht verwenden wir die prompt () -Methode, die mit einem Fehler geschrieben wurde - promt ()... Fügen Sie die Fehlermeldung in einen try-Block ein:
      • alert ("vor"); try (promt ("Zahl eingeben"); // Operator mit einem Fehler)

        Versuchen Sie es aus dem Englischen. - "try", daher setzen wir eine try-Anweisung vor ein Codefragment, das möglicherweise einen Fehler enthält (in unserem Fall liegt tatsächlich ein Fehler vor).

      • Die Fehlermeldung sollte in einen Catch-Block gestellt werden:
      • 6 7 8 9 fangen (e) (Alarm ( "Fehlerbehandlung:"+ e.message); )

        catch (e) (alert ("Fehlerbehandlung:" + e.message);)

        Wenn wirklich ein Fehler vorliegt, speichert die catch-Anweisung diesen Fehler im e-Objekt. Später kann es im Dialogfeld e.message angezeigt werden.

      • Platzieren Sie die letzte Nachricht, die angezeigt werden soll, unabhängig davon, ob der Code fehlerhaft ist, in einem finally-Block:
      • finally (alert ("Aktionen beenden");) alert ("after");

        Wenn ein Fehler auftritt, führt der Interpreter nach der Anzeige in unserem Beispiel den catch-Block aus und schließlich (ab Englisch "Vervollständigung", "finally"), der immer ausgeführt wird, unabhängig davon, ob ein Fehler aufgetreten ist oder nicht. Auch wenn im catch-Block ein Fehler aufgetreten ist.

      Wichtig: Der Endblock ist in der Konstruktion optional.


      Js Aufgabe 3_17. Folgen Sie dem obigen Beispiel mit den folgenden Änderungen:

    3. Entfernen Sie den finally-Block und beobachten Sie, wie der Code ausgeführt wird.
    4. Ersetzen Sie den fehlerhaften Operator durch einen fehlerfreien und sehen Sie, was das Ergebnis sein wird.
    5. Zusammenfassung:

      Die Lektion umfasste die folgenden Javascript-Operatoren und -Konstruktionen:

      Javascript bedingte Anweisungen:

    6. If-Anweisung
    7. Bedingte Zuordnung (ternärer Operator)
    8. Switch-Anweisung
    9. Schleifenoperatoren:

    10. Für Schleife
    11. While-Schleife
    12. Die do ... while-Schleife
    13. Für ... in Schleife
    14. Letzte Aufgabe Js 3_18.
      Erstellen Sie ein Spiel für zwei:

      1. Das Programm fordert den ersten Spieler auf, eine Nummer von einzugeben 1 Vor 100 (Der zweite Spieler sieht die eingegebene Nummer nicht). Dann wird der zweite Spieler gebeten, die eingegebene Nummer zu erraten. Die Nachricht wird als Antwort angezeigt "wenige" oder "viel" abhängig von der eingegebenen Antwort. Wenn der Spieler richtig vermutet, werden Glückwünsche angezeigt. Wenn er falsch vermutet, wird das Spiel fortgesetzt (bis die Zahl tatsächlich erraten wurde).
      2. Berechnen Sie die Anzahl der Versuche und geben Sie das Ergebnis zurück, wenn die Anzahl erraten wurde.


      Fragen zur Selbstkontrolle:

      1. Wann ist es ratsam, eine For In-Schleife zu verwenden? Was ist ein Beispiel für seine Verwendung.
      2. Was ist der Zweck der try..catch-Anweisung?
      3. Erläutern Sie den Zweck jedes try..catch-Anweisungsblocks.

      JavaScript verfügt über ein bedingtes Konstrukt, das den Ausführungsfluss eines Programms beeinflusst. Wenn (auf Englisch, wenn) etwas ist, etwas wahr ist, dann mache eine Sache, sonst (auf Englisch sonst) - mach eine andere.

      If-Anweisung

      Werfen wir einen Blick darauf, wie die if-Anweisung funktioniert. Sie ist einfach und erfordert nicht viel Erklärung.

      If (Bedingung) (Code, der ausgeführt werden soll, wenn die Bedingung erfüllt ist)

      Es ist ganz einfach: Wenn die Bedingung erfüllt ist, wird der Code im (...) Block ausgeführt.

      Var Ziffer \u003d 4; if (digit \u003d\u003d 4) (document.write ("digit is 4.");)

      Es kann ein seltsamer Code erstellt werden:

      Var Ziffer \u003d 4; if (true) (document.write ("Die Bedingung ist wahr.");)

      Sonst Aussage

      Eine else-Anweisung kann in Verbindung mit einer if-Anweisung verwendet werden. Es übersetzt in "anders" und bietet einen alternativen Code.

      Var Ziffer \u003d 4; if (Ziffer

      Beachten Sie die unterschiedlichen Schreibweisen der geschweiften Klammern in diesem Beispiel für die if- und else-Anweisungen. Es ist nicht obligatorisch, auf diese Weise zu schreiben, beide Syntaxen sind korrekt.

      Auf die else-Anweisung kann eine neue if-Anweisung folgen. Dadurch werden mehrere Bedingungen getestet.

      Var Ziffer \u003d 4; if (Ziffer

      JavaScript hat keine elseif-Anweisung (in einem Wort) wie PHP.

      Wenn Sie nur eine Anweisung ausführen müssen, sind die geschweiften Klammern (...) nicht erforderlich. In unserem Beispiel müssen Sie sie nicht schreiben:

      Var Ziffer \u003d 4; if (Ziffer

      Liegt in JavaScript

      Die if (Bedingung) -Anweisung wertet die in Klammern gesetzte Bedingung (Ausdruck) aus und konvertiert sie in Boolesch (wahr oder falsch).

      Lassen Sie uns noch einmal wiederholen, dass JavaScript eine Lüge enthält.

      • Nummer 0 (Null).
      • Leere Zeile "".
      • Boolean false :)
      • Der Wert ist null.
      • Der Wert ist undefiniert.
      • Der NaN-Wert (keine Zahl).

      Alles andere ist wahr.

      Einige mögliche Fehler:

      If ("false") document.write ("Dies ist wahr.
      "); if (false) document.write (" Dies ist wahr.

      ");

      Hier müssen Sie die Zeichenfolge "false" (in Anführungszeichen) vom Wert des booleschen Typs false unterscheiden.

      If ("") document.write ("Dies ist wahr.
      "); else document.write (" Dies ist falsch.
      ");

      Hier müssen Sie die Zeichenfolge "" (innerhalb eines Leerzeichens) von der leeren Zeichenfolge "" unterscheiden. Ein Leerzeichen innerhalb einer Zeichenfolge macht sie nicht leer, sondern enthält ein Zeichen. Für den Dolmetscher spielt es keine Rolle, ob es sich um einen Buchstaben oder ein Leerzeichen handelt - ein Symbol ist ein Symbol.

      Andere Bedingungen in JavaScript

      • JavaScript-Switch-Konstruktion.
      • Bediener-Fragezeichen

      Bedingte Operatoren

      Mit bedingten Anweisungen können Sie andere Anweisungen basierend auf dem Wert des angegebenen Ausdrucks überspringen oder ausführen. Diese Operatoren sind die Entscheidungspunkte im Programm und werden manchmal auch aufgerufen verzweigungsoperatoren.

      Wenn wir uns vorstellen, dass das Programm eine Straße ist und der JavaScript-Interpreter ein Reisender, der entlang dieser Straße läuft, können bedingte Anweisungen als Kreuzungen betrachtet werden, an denen sich der Programmcode in zwei oder mehr Straßen teilt, und an solchen Kreuzungen muss der Interpreter auswählen, welche Straße er nehmen möchte. ...

      If / else-Anweisung

      Die if-Anweisung ist eine grundlegende Steueranweisung, mit der der JavaScript-Interpreter Entscheidungen treffen oder genauer gesagt Anweisungen basierend auf Bedingungen ausführen kann. Die if-Anweisung hat zwei Formen. Zuerst:

      if (Ausdrucks-) Anweisung

      In dieser Form wird der Ausdruck zuerst ausgewertet. Wenn das Ergebnis wahr ist, wird die Anweisung ausgeführt. Wenn der Ausdruck false zurückgibt, wird die Anweisung nicht ausgeführt. Zum Beispiel:

      If (Benutzername \u003d\u003d null) // Wenn Benutzername null oder undefinierter Benutzername \u003d "Alex" ist; // definiere es

      Beachten Sie, dass die Klammern um den bedingten Ausdruck ein erforderlicher Bestandteil der Syntax der if-Anweisung sind.

      Die zweite Form der if-Anweisung führt die else-Klausel ein, die ausgeführt wird, wenn der Ausdruck false zurückgibt. Seine Syntax:

      if (Ausdruck) Anweisung1 sonst Anweisung2

      Dieses Formular führt Anweisung1 aus, wenn der Ausdruck true zurückgibt, und Anweisung2, wenn der Ausdruck false zurückgibt. Zum Beispiel:

      If (n \u003d\u003d 1) console.log ("1 neue Nachricht empfangen."); sonst console.log ("Erhalten" + n + "Neue Nachrichten.");

      Sonst if-Anweisung

      Die if / else-Anweisung wertet den Wert des Ausdrucks aus und führt je nach Ergebnis den einen oder anderen Programmcode aus. Aber was ist, wenn Sie einen von vielen Chunks ausführen möchten? Eine Möglichkeit, dies zu tun, besteht darin, eine else if-Anweisung zu verwenden. Es ist formal kein eigenständiger JavaScript-Operator. Dies ist nur ein gängiger Programmierstil, der eine sich wiederholende if / else-Anweisung verwendet:

      If (n \u003d\u003d 1) (// Block 1 ausführen) else if (n \u003d\u003d 2) (// Block 2 ausführen) else if (n \u003d\u003d 3) (// Block 3 ausführen) else (// If none eine der vorherigen else-Anweisungen wurde nicht ausgeführt, Block 4 ausführen)

      An diesem Ausschnitt ist nichts Besonderes. Es ist einfach eine Folge von if-Anweisungen, wobei jede if-Anweisung Teil der else-Anweisung der vorherigen Anweisung ist.

      Switch-Anweisung

      Die if-Anweisung erstellt eine Verzweigung im Programmausführungsablauf, und die Verzweigung mit mehreren Positionen kann mit mehreren else if-Anweisungen implementiert werden. Dies ist jedoch nicht immer die beste Lösung, insbesondere wenn alle Zweige vom Wert desselben Ausdrucks abhängen. In diesem Fall ist es verschwenderisch, den Wert desselben Ausdrucks in mehreren if-Anweisungen neu zu bewerten.

      Die switch-Anweisung ist genau für solche Situationen ausgelegt. Auf das Schlüsselwort switch folgen ein Ausdruck in Klammern und ein Codeblock in geschweiften Klammern:

      switch (Ausdruck) (Anweisungen)

      Die vollständige Syntax einer switch-Anweisung ist jedoch komplexer als hier gezeigt. Verschiedene Stellen im Block sind mit dem Schlüsselwort gekennzeichnet fallgefolgt von einem Ausdruck und einem Doppelpunkt.

      Wenn eine switch-Anweisung ausgeführt wird, wertet sie den Wert des Ausdrucks aus und sucht dann nach einer Fallbezeichnung, die diesem Wert entspricht (die Übereinstimmung wird mit dem Identitätsoperator \u003d\u003d\u003d bestimmt). Wenn eine Bezeichnung gefunden wird, wird der Codeblock ab der ersten Anweisung nach der Fallbezeichnung ausgeführt. Wenn keine Fallbezeichnung mit übereinstimmendem Wert gefunden wird, beginnt die Ausführung mit der ersten Anweisung nach der speziellen Bezeichnung standard:... Wenn es keine Standardbezeichnung gibt, wird der gesamte Schalterblock übersprungen.

      Es ist schwierig, die Funktionsweise der switch-Anweisung in Worten zu erklären, die Erklärung sieht anhand eines Beispiels viel klarer aus. Die folgende switch-Anweisung entspricht den wiederholten if / else-Anweisungen im vorherigen Beispiel:

      Schalter (n) (Fall 1: // Ausführen, wenn n \u003d\u003d\u003d 1 // Block 1-Pause ausführen; // Hier anhalten Fall 2: // Ausführen, wenn n \u003d\u003d\u003d 2 // Block 2-Pause ausführen; / / Hier anhalten Fall 3: // Ausführen, wenn n \u003d\u003d\u003d 3 // Block 3-Pause ausführen; // Hier anhalten Standard: // Wenn alles andere nicht funktioniert ... // Block 4-Pause ausführen; // Hier anhalten )

      Achten Sie auf das Schlüsselwort unterbrechung am Ende jedes Fallblocks. Die break-Anweisung überträgt die Kontrolle an das Ende der switch-Anweisung und setzt die Ausführung der folgenden Anweisungen fort. Die case-Anweisungen in einer switch-Anweisung geben nur den Startpunkt des ausgeführten Codes an, geben jedoch keine Endpunkte an.

      Wenn keine break-Anweisungen vorhanden sind, beginnt die switch-Anweisung mit der Ausführung des Codeblocks mit der case-Bezeichnung, die dem Wert des Ausdrucks entspricht, und setzt die Ausführung der Anweisungen fort, bis das Ende des Blocks erreicht ist. In seltenen Fällen ist dies nützlich, um Code zu schreiben, der von einer Fallbezeichnung zur nächsten springt. In 99% der Fälle sollten Sie jeden Fallblock jedoch sorgfältig mit einer break-Anweisung beenden. (Wenn Sie switch in einer Funktion verwenden, können Sie anstelle von break eine return-Anweisung verwenden. Beide Anweisungen beenden die switch-Anweisung und verhindern, dass zur nächsten Fallbezeichnung gesprungen wird.)

      Im Folgenden finden Sie ein praktischeres Beispiel für die Verwendung einer switch-Anweisung. Sie konvertiert einen Wert in eine Zeichenfolge, die vom Typ des Werts abhängt:

      Funktion convert (x) (switch (typeof x) (// Konvertiere eine Zahl in eine hexadezimale Ganzzahl "number": return x.toString (16); // Gib eine Anführungszeichenfolge "string" zurück: return "" "+ x + "" "; // Jeder andere Typ wird wie gewohnt konvertiert: return x.toString ();)) console.log (convert (1067)); // Ergebnis "42b"

      Beachten Sie, dass in den beiden vorherigen Beispielen auf die case-Schlüsselwörter Zahlen oder Zeichenfolgenliterale folgten. Auf diese Weise wird die switch-Anweisung in der Praxis am häufigsten verwendet. Mit dem ECMAScript-Standard können Sie jedoch nach dem Fall beliebige Ausdrücke angeben.

      Die switch-Anweisung wertet zuerst den Ausdruck nach dem Schlüsselwort switch und dann die case-Ausdrücke in der Reihenfolge aus, in der sie angezeigt werden, bis ein übereinstimmender Wert gefunden wird. Die Tatsache einer Übereinstimmung wird mit dem Identitätsoperator \u003d\u003d\u003d bestimmt, nicht mit dem Gleichheitsoperator \u003d\u003d, daher müssen Ausdrücke ohne Typkonvertierung übereinstimmen.

      Da nicht alle Fallausdrücke bei jeder Ausführung einer switch-Anweisung ausgewertet werden, sollten Sie die Verwendung von Fallausdrücken vermeiden, die Nebenwirkungen haben, z. B. Funktionsaufrufe und Zuweisungen. Es ist am sichersten, Ihre Fallausdrücke auf konstante Ausdrücke zu beschränken.

      Wie bereits erläutert, führt die switch-Anweisung die Anweisung mit der Bezeichnung default aus, wenn keiner der case-Ausdrücke mit dem switch-Ausdruck übereinstimmt. Wenn es kein default: label gibt, wird der Hauptteil der switch-Anweisung vollständig übersprungen. Beachten Sie, dass in den vorherigen Beispielen nach allen Fallbezeichnungen die Standardeinstellung: label am Ende des Hauptteils der switch-Anweisung angezeigt wird. Dies ist ein logischer und üblicher Ort dafür, aber tatsächlich kann er sich an einer beliebigen Stelle innerhalb einer switch-Anweisung befinden.