Ergebnis 1 bis 4 von 4

Thema: inkrement / dekrement

  1. #1
    HTML Newbie
    Registriert seit
    21.01.2008
    Beiträge
    2
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard inkrement / dekrement

    hallo ...ich habs nicht so drauf mit inkrement/dekrement ...schrteib aber ne prüfung heut mittag ..... kann mir jemand folgende 2 aufgaben lösen ...bitte :


    welche werte haben a und b nach ausführen der anweisungen :

    1.) int a = 2, b = 1;

    if (--a || --b) a++;

    2.) int a = 2, b = 1;

    if (--a && --b) a++;


    danke schonmal ...grüße .... bitte schnell beantworten
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Fortgeschrittene/r
    Registriert seit
    26.09.2005
    Ort
    Nürnberg
    Beiträge
    169
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Bei 1. ändert sich garnichts, da zuerst --a ausgeführt wird, was a == 1 ergibt. Aufgrund dessen wird der zweite Teil von der if() Anweisung nicht mehr ausgeführt, weil es sowieso true ergeben würde. Und mit a++ wird a wieder inkrementiert.

    Also 1: a == 2 und b == 1

    Bei 2. muss der zweite Teil der if() Anweisung geprüft werden (hier ein &&, kein || ). Und da b == 0, ist die Abfrage false.

    Also 2: a == 1, b == 0

    Viel Glück bei der Prüfung.

  3. #3
    Kaiserliche Hoheit Avatar von vbtricks
    Registriert seit
    26.12.2005
    Beiträge
    1.586
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Salut,

    das ist relativ einfach.

    Punkt 1:
    ++ heißt, dass der Wert um eins erhöht wird (Inkrement)
    -- heißt, dass der Wert um eins runtergesetzt wird (Dekrement)

    Punkt 2:
    jetzt kommt es noch drauf an, ob der Operator vor oder nach der Variablen steht. Steht er davor, wird erst um 1 in/dekrementiert und dann der Ausdruck ausgewertet, steht er dahinter, wird nach Auswertung des Ausdrucks in/dekrementiert (bei der Auswertung zählt also der alte Wert der Variablen).

    Also:
    1.) int a = 2, b = 1;
    [a = 2, b = 1]
    if (--a || --b) // es wird erst dekrementiert, also (dann eingesetzt) 1 || 0 geprüft, ist wahr, also Anweisung wird ausgeführt
    {
    [a = 1, b = 0]
    a++; // hier ist es übrigens egal, ob davor oder danach
    [a = 2, b = 0]
    }
    [a = 2, b = 0]

    2.)
    int a = 2, b = 1;
    [a = 2, b = 1]
    if (--a || --b) // es wird erst dekrementiert, also (dann eingesetzt) 1 && 0 geprüft, ist falsch, also Anweisung wird nicht ausgeführt
    {
    a++;
    }
    [a = 1, b = 0]

    EditWasserleiche hat recht bei Punkt 1, da schon --a = 1, wird der zweite Teil gar nicht mehr geprüft. Ständen statt zwei | nur eins dort, wäre meins richtig)

    Hope that helps,

    Stefan
    Farben richtig wählen: ColorBlender
    Website validieren: W3C Markup Validation Service
    Meine Website: vbtricks
    Kleines Snake zwischendurch?

  4. #4
    HTML Newbie
    Themenstarter

    Registriert seit
    21.01.2008
    Beiträge
    2
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    1000 dank

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •