Philip: Ich bin einfach zu blöd...Oder?

So, wer findet hier einen Fehler?
Ich suche schon seit Stunden...

function minusjalo () {
x = cookiearray[2][1]
if (x = 1) {
x = 0
}
if (x = 0) {
x = 1
}
if (x = 1) {
document.getElementById("jalo").firstChild.nodeValue = "Geöffnet";
}
if (x = 0) {
document.getElementById("jalo").firstChild.nodeValue = "Geschlossen";
}
document.cookie = "i=" + i + "; ; expires=" + ablauf.toGMTString();
document.cookie = "t=" + t + "; ; expires=" + ablauf.toGMTString();
document.cookie = "x=" + x + "; ; expires=" + ablauf.toGMTString();

}

  1. moin Philip :)

    if (x = 1) {
    x = 0
    }

    Das macht ja nu gar keinen Sinn...
    1. in einer If-Abfrage ne Zuweisung zu setzen ist Quark
    2. Diese Zuweisung direkt wieder überschreiben ist noch größerer Quark

    Ich nehme an, du wolltest if(x==1) schreiben ;)

    liebe Grüße aus Berlin
    lina-

    --
    Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
    1. Ja das mit den = und ==

      Gönne deinen Zeilenenden hin und weder ein Semikolon, damit der Rechner da nicht durcheinander kommt.

      Wie wäre es mit
      if (x==1) x=0;
      else x=1;

      oder noch kürzer;

      x = (x==0)?1:0;

      Ich denke, damit ist auch der Fall erschlagen, daß x mal 2 oder undefined sein kann.

      Oft auch ein Fehler wenn das eine Ergebniss eine Zahl und das andere ein String ist.
      Um sicher zu gehen, daß alles Zahl ist

      x = parseInt(...)

      1. Moin

        Wie wäre es mit
        if (x==1) x=0;
        else x=1;

        oder noch kürzer;

        x = (x==0)?1:0;

        oder noch kürzer:

        x = 1 - x;

        Gruß
        Avalon

        1. Hab es jetzt hingekriegt.. Frei nach dem Moto:

          "Never change a running system!"

          Werde ich es so lassen wie es jetzt ist...

    2. Hi lina,

      if (x = 1) {
      [...]

      1. in einer If-Abfrage ne Zuweisung zu setzen ist Quark

      In diesem Beispiel schon. Aber grundsätzlich kann das durchaus sinnvoll sein. Beispiel gefällig? Es möge eine Funktion GetState() existieren, die z.B. den Zustand eines Objekts abfragt. Dann könnte

      if (x=GetState(obj))
        { // more checks,
          // x is current state.
        }
       else
        { // State #0: Idle
        }

      schon sinnvoll sein.
      Auch in C mache ich sowas häufig. Klassiker sind Funktionen wie malloc(), die einen Zeiger liefern, wenn alles in Ordnung ist, oder NULL im Fehlerfall:

      if (p=malloc(0x4000))
        { // p ist gültig zeigt auf einen 16k großen
          // Speicherblock, der genutzt werden darf
        }
       else
        { // Fehler bei der Speicherreservierung
        }

      Ich nehme an, du wolltest if(x==1) schreiben ;)

      Ja, das wollte Philip mit Sicherheit - obwohl er ja eine Reihe besserer Vorschläge bekommen hat. Der eleganteste davon ist meiner Ansicht nach

      x = !x;

      Schönes Wochenende noch,

      Martin

  2. Hi Philip!

    Sag mir erst mal, wo hier der Fehler ist:

    function minusjalo () {  
    x = cookiearray[2][1]  
    if (true) {  
    x = 0  
    }  
    if (false) {  
    x = 1  
    }  
    if (true) {  
    document.getElementById("jalo").firstChild.nodeValue = "Geöffnet";  
    }  
    if (false) {  
    document.getElementById("jalo").firstChild.nodeValue = "Geschlossen";  
    }  
    document.cookie = "i=" + i + "; ; expires=" + ablauf.toGMTString();  
    document.cookie = "t=" + t + "; ; expires=" + ablauf.toGMTString();  
    document.cookie = "x=" + x + "; ; expires=" + ablauf.toGMTString();  
      
    }
    

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. Sag mir erst mal, wo hier der Fehler ist:

      Der fehler ist ganz einfach ich komme zwar von 1 auf 0 aber nicht umgekehrt und noch schlimmer: Die var wird nicht gespeichert.

      Leicht modifiziert nach lina:

      function minusjalo () {
      x = cookiearray[2][1]
      if (x==1) {
      document.getElementById("jalo").firstChild.nodeValue = "Geöffnet";
      }
      if (x==0) {
      document.getElementById("jalo").firstChild.nodeValue = "Geschlossen";
      }
      document.cookie = "i=" + i + "; ; expires=" + ablauf.toGMTString();
      document.cookie = "t=" + t + "; ; expires=" + ablauf.toGMTString();
      document.cookie = "x=" + x + "; ; expires=" + ablauf.toGMTString();
      alert (x)
      }

      1. Hi Philip!

        Der fehler ist ganz einfach ich komme zwar von 1 auf 0 aber nicht umgekehrt und noch schlimmer: Die var wird nicht gespeichert.

        Dieser Codeschnipsel tut exakt das, was deiner auch tut. Er setzt x immer auf 0.

        Alternativ dazu hätte natürlich ein x=0; gereicht.

        MfG H☼psel

        --
        "It's amazing I won. I was running against peace, prosperity, and incumbency."
        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
        1. if(x==0)
          x=1;
          else
          {
          if(x==1)
          x=0
          }

          bzw.

          if(x==0)
           {
            x = 1;
           }
           else
           {
            if(x==1)
             {
              x = 0;
             }
           }

          1. Hi niemand!

            Was möchtest du mir damit sagen?

            MfG H☼psel

            --
            "It's amazing I won. I was running against peace, prosperity, and incumbency."
            George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
            Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
            1. moin

              Was möchtest du mir damit sagen?

              ... daß man den einfachen Zasammenhang:

              x = 1 - x;

              auch kompliziert ausdrücken kann!
              Oder möchte er auf den Titel des Threads hinweisen? scnr

              Gruß
              Avalon

  3. ich geh mal davon aus, dass x nur 1 oder 0 sein kann...

    if (x == 1) {
    x = 0
    }

    ... dann ist x hier in jedem Fall 0...

    if (x == 0) {
    x = 1
    }

    ... und hier dann 1.

    Grüßle Jo

  4. Hi,

    So, wer findet hier einen Fehler?
    Ich suche schon seit Stunden...

    dann müsstest Du ja eigentlich in der Lage sein, eine Fehlerbeschreibung abzuliefern, meinst Du nicht?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  5. Hallo Philip,

    deine Frage kann ich nicht beantworten...

    Das Problem mit deinen if-Abfragen wurde dir ja schon genannt.

    Aber wenn du nur zwischen 0 und eins hin und herschalten willst, geht auch:
       x = 1-x;
    vorrausgesetzt, x ist schon 0 oder 1. Logische Werte gingen auch:
       x = !x;
    schaltet zwischen true und false hin und her.

    Wo kommen übrigens die Werte für i und t her, die du im Cookie ablegst?

    Gruß, Jürgen

    1. Wo kommen übrigens die Werte für i und t her, die du im Cookie ablegst?

      i ist der Wert, der ein Controller ausgibt und t ein Wert für Temperatur...
      Der Script ist nur ein Ausschnitt...

      Achja es wäre nur I 0 wäre true false eine Möglichkeit...