Timo Fleischmann: Java Berechnungen durchführen anhand von Bedingungen

Hallo zusammen,

ich bin Java Anfänger und würde gerne in einem Formular eine Berechnung gekoppelt an Bedingungen durchführen lassen.

Also wenn eine Variabel den Wert x hat soll die Berechnung a/b durchgeführt werden Wenn die Variabel den Wert y hat soll b/a ausgeführt werden.

Kann mir da jemand helfen! :-)

  1. was hast du denn schon? Wo ist das Problem?

    1. was hast du denn schon? Wo ist das Problem?

      if (dataSetRow["TATNR"] = 0985) {dataSetRow["ZEIT_H"];}
      if (dataSetRow["TATNR"] =0310) {dataSetRow["ZEIT_H"];}
      if (dataSetRow["TATNR"] = 0330) {dataSetRow["PE"] / dataSetRow["ZEIT_H"];}
      

      ich habe es mal so veruscht, es tut aber nicht ;-(

      1. Hallo,

        if (dataSetRow["TATNR"] = 0985) ...

        Dreh es um, dann sollte dir deine IDE hilfreichere Hinweise geben:
        if ( 0985 = dataSetRow[...])...

        Gruß
        Kalk

      2. Moin,

        if (dataSetRow["TATNR"] = 0985) {dataSetRow["ZEIT_H"];}
        if (dataSetRow["TATNR"] = 0310) {dataSetRow["ZEIT_H"];}
        if (dataSetRow["TATNR"] = 0330) {dataSetRow["PE"] / dataSetRow["ZEIT_H"];}
        

        ich habe es mal so veruscht, es tut aber nicht ;-(

        "es tut aber nicht" ist keine brauchbare Fehlerbeschreibung.
        Allerdings hat der obige Codeausschnitt zwei deutlich erkennbare Fehler.

        1. Du formulierst keinen Vergleich, sondern eine Zuweisung. Der Vergleichsoperator ist in Javascript, wie in vielen anderen Sprachen auch, nicht =, sondern ==.
        2. Du notierst Zahlen mit führenden Nullen. Das bedeutet, dass es Zahlen in Oktalschreibweise sein sollen, was du vermutlich nicht gemeint hast. 0310 wäre dann dezimal 200, 0330 wäre dezimal 216 und 0985 produziert einen Fehler, weil das Oktalsystem die Ziffern 8 und 9 nicht kennt.

        So long,
         Martin

        --
        Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
        - Douglas Adams, The Hitchhiker's Guide To The Galaxy
        1. @@Der Martin

          0985 produziert einen Fehler, weil das Oktalsystem die Ziffern 8 und 9 nicht kennt.

          Nein – weder in JavaScript noch in PHP.

          Allerdings verhält es sich unterschiedlich.

          JavaScript:

          var a = 0985;
          console.log(a); // 985
          

          PHP:

          $a = 0985;
          echo $a; // 0
          

          WIe sieht’s in Java aus?

          LLAP 🖖

          --
          “You might believe there are benefits for the developer, but first of all, you should put those behind the interest of the user.” —Stefan Tilkov
          Selfcode: sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|
          1. Hi,

            0985 produziert einen Fehler, weil das Oktalsystem die Ziffern 8 und 9 nicht kennt.

            Nein – weder in JavaScript noch in PHP.

            dass PHP hier sehr merkwürdig reagiert, weiß ich seit kurzem. Aber Javascript auch?

            var a = 0985;
            console.log(a); // 985
            

            Drecksg'lump. 0985 ist ein Fehler, es widerspricht den Regeln, sollte also auch als Fehler beanstandet und gemeldet werden. So eine heimliche interne Fehlerkorrektur kann vorteilhaft sein, kann aber ebenso auch zu stundenlanger Suche führen.

            PHP:

            $a = 0985;
            echo $a; // 0
            

            Ab PHP 7 gibt's angeblich einen Parse Error. So sollte es IMO sein.

            So long,
             Martin

            --
            Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
            - Douglas Adams, The Hitchhiker's Guide To The Galaxy
            1. Hallo Der Martin,

              $a = 0985;
              echo $a; // 0
              

              Ab PHP 7 gibt's angeblich einen Parse Error. So sollte es IMO sein.

              Stimmt.

              Bis demnächst
              Matthias

              --
              Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
            2. Tach,

              0985 ist ein Fehler, es widerspricht den Regeln, sollte also auch als Fehler beanstandet und gemeldet werden.

              in ECMAScript (Strict Mode) allerdings ein anderer Fehler, als du erwarten würdest, führende Nullen in Integers sind komplett verboten.

              mfg
              Woodfighter

              1. Hallo,

                0985 ist ein Fehler, es widerspricht den Regeln, sollte also auch als Fehler beanstandet und gemeldet werden.

                in ECMAScript (Strict Mode) allerdings ein anderer Fehler, als du erwarten würdest, führende Nullen in Integers sind komplett verboten.

                das hätte ich tatsächlich nicht erwartet.
                Und wie werden Oktalzahlen dann notiert? Gar nicht, weil's kaum einer verwendet?

                Ähm, und Hex-Notation mit dem Präfix 0x? Das wäre ja auch eine führende Null. Und jetzt?

                Ciao,
                 Martin

                --
                Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
                - Douglas Adams, The Hitchhiker's Guide To The Galaxy
                1. Tach,

                  in ECMAScript (Strict Mode) allerdings ein anderer Fehler, als du erwarten würdest, führende Nullen in Integers sind komplett verboten.

                  das hätte ich tatsächlich nicht erwartet.
                  Und wie werden Oktalzahlen dann notiert? Gar nicht, weil's kaum einer verwendet?

                  angelehnt an Hex mit dem Präfix 0o oder um es schlechter sichtbar zu machen 0O.

                  Ähm, und Hex-Notation mit dem Präfix 0x? Das wäre ja auch eine führende Null. Und jetzt?

                  Habe mich zu kurz gefasst, das Präfix existiert weiterhin.

                  mfg
                  Woodfighter

                  1. Hi,

                    Und wie werden Oktalzahlen dann notiert? Gar nicht, weil's kaum einer verwendet?

                    angelehnt an Hex mit dem Präfix 0o oder um es schlechter sichtbar zu machen 0O.

                    Ähm, und Hex-Notation mit dem Präfix 0x? Das wäre ja auch eine führende Null. Und jetzt?

                    Habe mich zu kurz gefasst, das Präfix existiert weiterhin.

                    ah, verstehe. Danke für die Ergänzung.
                    Das heißt, führende Nullen sind nicht erlaubt, mit Ausnahme von 0o, 0x und vermutlich auch 0b (und die entsprechenden Varianten mit Großbuchstaben).

                    Ciao,
                     Martin

                    --
                    Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
                    - Douglas Adams, The Hitchhiker's Guide To The Galaxy
          2. Hallo Gunnar Bittersmann,

            WIe sieht’s in Java aus?

            http://www.tutorialspoint.com/compile_java_online.php

            public class HelloWorld{
            
                 public static void main(String []args){
                    a = 0895;
                    System.out.println(a);
                 }
            }
            
            HelloWorld.java:4: error: integer number too large: 0895                                            
                     a = 0895;
                         ^                                          
            1 error
            

            Bis demnächst
            Matthias

            --
            Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
  2. @@Timo Fleischmann

    ich bin Java Anfänger

    Den Unterschied zwischen Java und JavaScript kennst du aber schon? Und den Unterschied zwischen Deppenleerzeichen und Bindestrichen?

    Also wenn eine Variabel den Wert x hat soll die Berechnung a/b durchgeführt werden Wenn die Variabel den Wert y hat soll b/a ausgeführt werden.

    Kann mir da jemand helfen! :-)

    „Wenn ‟heißt auf Englisch „if‟. Das sollte dir helfen.

    LLAP 🖖

    --
    “You might believe there are benefits for the developer, but first of all, you should put those behind the interest of the user.” —Stefan Tilkov
    Selfcode: sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|
    1. @@Timo Fleischmann

      ich bin Java Anfänger

      Den Unterschied zwischen Java und JavaScript kennst du aber schon? Und den Unterschied zwischen Deppenleerzeichen und Bindestrichen?

      Also wenn eine Variabel den Wert x hat soll die Berechnung a/b durchgeführt werden Wenn die Variabel den Wert y hat soll b/a ausgeführt werden.

      Kann mir da jemand helfen! :-)

      „Wenn ‟heißt auf Englisch „if‟. Das sollte dir helfen.

      LLAP 🖖

      “You might believe there are benefits for the developer, but first of all, you should put those behind the interest of the user.” —Stefan Tilkov
      Selfcode: sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|

      Eher bei Adam und Eva anfangen :-)

      1. Hallo Timo Fleischmann,

        Kann mir da jemand helfen! :-)

        „Wenn ‟heißt auf Englisch „if‟. Das sollte dir helfen.

        Bitte zitiere sinnvoll, nur das worauf du dich gerade beziehen möchtest. Danke.

        Eher bei Adam und Eva anfangen :-)

        Dann musst du deine Ziele etwas genauer beschreiben und auch die Voraussetzungen, z.B. wo kommen die Werte her, mit denen du rechnen möchtest, …

        Bis demnächst
        Matthias

        --
        Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
        1. Hallo Timo Fleischmann,

          Kann mir da jemand helfen! :-)

          „Wenn ‟heißt auf Englisch „if‟. Das sollte dir helfen.

          Bitte zitiere sinnvoll, nur das worauf du dich gerade beziehen möchtest. Danke.

          Eher bei Adam und Eva anfangen :-)

          Dann musst du deine Ziele etwas genauer beschreiben und auch die Voraussetzungen, z.B. wo kommen die Werte her, mit denen du rechnen möchtest, …

          Bis demnächst
          Matthias

          Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.

          Hallo Matthias,

          ich habe ein Formular für mein ERP System. Hier möchte ich einem Feld eine Berechnung hinterlegen würde so ausshen, wenn mein Feld "TATNR" aus meiner Datenbank mit dem Wert 0985 gefüllt wird, dann zeige nur das Feld Zeit_H an, wenn die 0330 drin steht dann führe unten stehende berechnung durch:

          if (dataSetRow["TATNR"] = 0985) {dataSetRow["ZEIT_H"];} if (dataSetRow["TATNR"] =0310) {dataSetRow["ZEIT_H"];} if (dataSetRow["TATNR"] = 0330) {dataSetRow["PE"] / dataSetRow["ZEIT_H"];}

          Danke für die Hilfe! Gruß Timo

          1. Hallo Timo Fleischmann,

            Was hast du an

            Bitte zitiere sinnvoll, nur das worauf du dich gerade beziehen möchtest. Danke.

            nicht verstanden?

            ich habe ein Formular für mein ERP System. Hier möchte ich einem Feld eine Berechnung hinterlegen würde so ausshen, wenn mein Feld "TATNR" aus meiner Datenbank mit dem Wert 0985 gefüllt wird, dann zeige nur das Feld Zeit_H an, wenn die 0330 drin steht dann führe unten stehende berechnung durch:

            if (dataSetRow["TATNR"] = 0985) {dataSetRow["ZEIT_H"];}
            if (dataSetRow["TATNR"] =0310) {dataSetRow["ZEIT_H"];}
            if (dataSetRow["TATNR"] = 0330) {dataSetRow["PE"] / dataSetRow["ZEIT_H"];}
            
            

            Es fehlen möglicherweise Anführungsstriche, eventuell müssen auch die führenden Nullen entfernt werden. Wo soll das Ergebnis der Berechnung erscheinen? Eine Anweisung zum Anzeigen kann ich jedenfalls nicht entdecken? So völlig ohne Grundkenntnisse wird es schwierig. Wie sieht das Formular aus?

            Für ein ERP gibt es doch bestimmt qualitativ hochwertigen Support?

            Bis demnächst
            Matthias

            --
            Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
            1. [Vollzitat entfernt]

              So habe es jetzt hinbekommen, der ERP Support ist sehr hochwertig, vor allem teuer :-)

              Danke nochmal!!! Gruß Timo

          2. @@Timo Fleischmann

            if (dataSetRow["TATNR"] = 0985)

            In viele Programmiersprachen (in allen mit C-ähnlicher Syntax) ist = der Zuweisungoperator. Der Vergleichsoperator ist ==; in JavaScript typsicher: ===.

            Wenn du also nicht dataSetRow["TATNR"] den Wert 0985 zuweisen willst, musst du if (dataSetRow["TATNR"] == 0985) bzw. if (dataSetRow["TATNR"] === 0985) schreiben.

            LLAP 🖖

            --
            “You might believe there are benefits for the developer, but first of all, you should put those behind the interest of the user.” —Stefan Tilkov
            Selfcode: sh:) fo:} ch:? rl:) br:> n4:& va:| de:> zu:} fl:{ ss:| ls:# js:|
            1. [Vollzitat entfernt]

              Super Danke jetzt funktioniert es!!