Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Java - "null" in Ausgabe?

  1. #1
    Youngster Avatar von bitterlemoncola
    Registriert seit
    03.11.2008
    Ort
    Mannheim
    Alter
    29
    Beiträge
    13
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Java - "null" in Ausgabe?

    Hallo ich sollte fuer die Schule ein Javaprogramm schreiben, welches max.5 Zahlen einliest und dann die größte und kleinste eingegebene Zahl ausgibt, sowie zahlenfolge ausgibt. Sobald eine "0" eingegeben wird, soll das Programm ebenfalls stoppen.
    Das funktioniert auch alles nur bei der Ausgabe steht am Anfang der eingegeben Zahlenfolge "null". Warum erscheint das da bzw. was bedeuted es?

    Hier ist der Quellcode:
    Code:
    import java.io.*;
    import java.lang.*;
    
    public class Zahlenstatistik{ 
    
        int zahl, i, v1, v2, v3, v4, v5, dMin, dMax, var;
        String zahlT, varT, zReihe;
        
        public Zahlenstatistik(){
            ausgebenText("\nZahlenstatistik: \n____________________\n\n");
            verarbeite();
        }
        void verarbeite(){
            i=1;
            do{
                zahlT=einlesenText("Zahl eingeben: ");
                zahl=text2int(zahlT);
                switch(i){
                    case 1:
                        v1=zahl;
                    break;
                    case 2:
                        v2=zahl;
                    break;
                    case 3:
                        v3=zahl;
                    break;
                    case 4:
                        v4=zahl;
                    break;
                    case 5:
                        v5=zahl;
                    break;
                    default:
                        ausgebenText("Nur 5 Eingaben moeglich!\n");
                }
                i=i+1;
            }
            while(zahl!=0&i<=6);
            dMin=v1;
            dMax=v1;
            for(i=1; i<=5; i=i+1){
                switch(i){
                    case 1:
                        var=v1;
                    break;
                    case 2:
                        var=v2;
                    break;
                    case 3:
                        var=v3;
                    break;
                    case 4:
                        var=v4;
                    break;
                    case 5:
                        var=v5;
                    break;
                    default:
                }
                varT=int2text(var);
                zReihe=zReihe+varT+"\t";
                if(var<dMin)
                    dMin=var;
                if(var>dMax)
                    dMax=var;
            }
            ausgebenText("\nHoechste Zahl:\t\t"+dMax+"\nNiedrigste Zahl:\t"+dMin+"\nZahlenreihe:\t\t"+zReihe+"\n\n\n");    
        }
        public void ausgebenText(String ausgabeText){
            System.out.print(ausgabeText);
        }
       
       public String einlesenText(String meldung){
            String benutzerEingabe = "";
             System.out.print(meldung+" ");
            BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
             try {
                  benutzerEingabe = in.readLine();
            } catch(Exception e){System.out.println(e);}
            return benutzerEingabe;
        }
        double text2double(String pText){
            return Double.valueOf(pText).doubleValue();
        }
        int text2int(String pText){
            return Integer.valueOf(pText).intValue();
        }
    
        String double2text(double pZahl){
            return String.valueOf(pZahl);    
        }
        String int2text(int pZahl){
            return String.valueOf(pZahl);    
        }
        public static void main(String args[]){
            Zahlenstatistik f = new Zahlenstatistik();
        }
    }
    Danke im voraus!
    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 !!!!!
    Computer lösen Probleme, die man vorher nicht hatte.

  2. #2
    König(in)
    Registriert seit
    06.06.2007
    Ort
    Bi
    Beiträge
    1.015
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Java - "null" in Ausgabe?

    Hi bitterlemoncola,

    die grundsätzliche Denkweise scheinst du verstanden zu haben, allerdings machst du hast ein paar Sachen noch nicht ganz korrekt, zumindest nicht in diesem Kontext.


    Code:
    while(zahl!=0&i<=6) // fehlt ein &
    
    while(zahl!=0 && i<=6)  // ich glaube du meintest diese Bedingung und die andere
    Dabei ist es aber so, dass du trotzdem die "0" als Zahl in eine deiner Werte schreibst, was so nicht gewollt ist - du willst ja mit 0 immer abbrechen, daher musst du vor dem switch diesen Fall abfangen.

    Nun zu deiner eigentlichen Frage, schau dir zReihe an, woraus wird es gebildet? - Aus zReihe = zReihe+varT . Wenn du allerdings in zReihe noch nichts geschrieben hast, ist zReihe = null und daher wird dir beim ersten mal auch null vorgeschrieben.


    Noch ein letzter Tip, lass vor und nach den Gleichheitszeichen auch noch jeweils ein leerzeichen frei (statt var=var2 z.B. var = var2 , aber nicht bei == , <= oder >= )

    LG
    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.

    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  3. #3
    Youngster
    Themenstarter
    Avatar von bitterlemoncola
    Registriert seit
    03.11.2008
    Ort
    Mannheim
    Alter
    29
    Beiträge
    13
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Java - "null" in Ausgabe?

    Danke erstmal!
    Wenn ich die 0 eintippe bevor ich 5 andere zahlen eingetippt habe, soll diese auch angezeigt werden, also das ist schon richtig.
    Mein Problem hast du trotzdem gelöst, danke.
    Nur verstehe ich nicht warum ich in der Bedingung zwei "&&" verwenden muss.
    Computer lösen Probleme, die man vorher nicht hatte.

  4. #4
    Forum Guru Avatar von synaptic
    Registriert seit
    20.06.2007
    Ort
    Butzbach-Wiesental
    Beiträge
    10.901
    Danke
    45
    Bekam 48 mal "Danke" in 46 Postings
    Blog-Einträge
    1

    Standard AW: Java - "null" in Ausgabe?

    vielleicht bringt dich das hier dabei weiter:
    http://num.math.uni-goettingen.de/sc...peratoren.html

    beim && wird darauf geachtet, dass auf jeden fall beide seiten der bedingung erfüllt sind.
    also muss auf jeden fall das erste und auch das zweite wahr sein, damit die bedingung wahr wird
    KEIN support via pn, email, messenger oder falsch geposteten threads
    Futter für deine Schnuffelzwerge gibts bei den Schnuffelzwergen TOP Qualität, also klicken und kaufen

  5. #5
    König(in)
    Registriert seit
    06.06.2007
    Ort
    Bi
    Beiträge
    1.015
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Java - "null" in Ausgabe?

    Das mit dem einfachen & und dem doppelten (&& ist eine etwas komplizierte Sache am Anfang.
    (Und für viele erschließt es sich auch später nicht, weil sie nie damit arbeiten).

    Ich weiß jetzt nicht in wie weit dir einzelne Datentypen was sagen, nehmen wir einfach mal an du weißt schon was Bit sind.
    Ein Bit kann entweder 0 oder 1 sein, so, nun ist das einfache & ist wie ein einfacher "und" Widerstand , sprich es wird geprüft , ob die eine Seite 0 oder 1 und die andere Seite 0 oder 1 ist
    also
    0 & 0 = 0
    1 & 0 = 0
    0 & 1 = 0
    1 & 1 = 1

    So, dies unterscheidet das aber noch nicht vom &&, der entscheidende Punkt liegt darin, wie das einfache & den Vergleich macht.
    So wird die wirklich bit-Weise verglichen, was aber nicht unbedingt immer gewünscht ist.

    Ich habe hier eine tiefergehende Erläuterung aus einem anderen forum nochmal kopiert

    if (( A & B ) == 0)

    ist eine binäre Bedingung. Sie ist erfüllt, wenn die Bits an der gleichen Stelle verunded werden und dabei null rauskommt.
    Diese Bedingung ist erfüllt, wenn A oder B oder beide null (0) sind.
    Aber auch, wenn z.B. A = 4 und B = 2 ist:
    A = 4 = ...0100
    B = 2 = ...0010
    A & B = 0 = ...0000 == 0 -> True, Bedingung erfüllt.
    Geändert von K.Y.L.T. (17.12.2008 um 09:56 Uhr)
    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.

    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  6. #6
    Youngster
    Themenstarter
    Avatar von bitterlemoncola
    Registriert seit
    03.11.2008
    Ort
    Mannheim
    Alter
    29
    Beiträge
    13
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Java - "null" in Ausgabe?

    Danke fuer die Antworten!
    Das mit dem "&" lass ich mir am besten noch mal von meinem Lehrer etwas genauer erklaeren.
    ...Will jetzt auch mit c++ anfangen, allerdings privat durch tutorials&etc.
    Computer lösen Probleme, die man vorher nicht hatte.

  7. #7
    Forum Guru Avatar von synaptic
    Registriert seit
    20.06.2007
    Ort
    Butzbach-Wiesental
    Beiträge
    10.901
    Danke
    45
    Bekam 48 mal "Danke" in 46 Postings
    Blog-Einträge
    1

    Standard AW: Java - "null" in Ausgabe?

    lern erstmal eine sache und vor allem oop, denn nen syntax und spracheigenheiten kann man sich zu jeder zeit aneignen
    KEIN support via pn, email, messenger oder falsch geposteten threads
    Futter für deine Schnuffelzwerge gibts bei den Schnuffelzwergen TOP Qualität, also klicken und kaufen

  8. #8
    Interessierte/r
    Registriert seit
    12.01.2009
    Ort
    nähe Trier
    Alter
    35
    Beiträge
    131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Java - "null" in Ausgabe?

    Hallo,

    das mit & und dem && ist eigentlich ganz einfach.

    Es werden zwei Bedingungen verknüpft.

    Beispiel
    Code:
    Integer i = new Integer(5);
    if(i != null && i ==5){
    //irgendwas wird gemacht
    }
    In diesem Beispiel wird geprüft, ob die Variable i nicht null ist und dann, ob sie gleich 5 ist.

    Die Reihenfolge wie geprüft wird ist
    Code:
    i != null
    und dann
    Code:
    i == 5
    .

    Bei einer &-Verknüpfung, egal ob mit & oder mit &&, es müssen immer beide Bedingungen True sein, damit die komplette Bedingung True ist.

    Das heißt wenn i != null == false, also ist i == null, braucht ja die zweite Bedingung (i == 5) nicht mehr getestet zu werden, da die komplette Bedinung ja nicht mehr True zurückliefern kann, weil die erste Bedingung ja False ist.

    Verknüpfst du jetzt beide Bedinungen nur mit &, werden in jedem Fall beide Bedingungen getestet, obwohl es ja unnötig ist, da der erste Teil ja schon false ist und die Bedinung nicht mehr true werden kann. Normal ist es ja nicht schlimm, aber wenn du eine solche Bedinung hast, bei der getestet wird, ob die Variable nicht null ist, wird eine NullPointer Exception geworfen.
    Werden beide Bedinungen mit && verknüpft wird die zweite Bedinung nicht mehr getestet, da die erste false ist.

    Code:
     
    public class UndExample
     
    
    {
    public static void main(String[] args) {
    Integer i = null;
    System.out.println("Bedinung mit &&"); if(i != null && i == 5){
    } System.out.println("Bedinung mit &");
    if(i != null & i == 5){
    } }
    }
    Ausgabe
    Bedinung mit &&
    Bedinung mit &
    Exception in thread "main"
    java.lang.NullPointerException

    at UndExample.main(
    UndExample.java:14)

    Gruß

    Sascha

  9. #9
    Youngster
    Themenstarter
    Avatar von bitterlemoncola
    Registriert seit
    03.11.2008
    Ort
    Mannheim
    Alter
    29
    Beiträge
    13
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Java - "null" in Ausgabe?

    danke sashs du hast es sehr einleuchtend erklaert, nur warum gibts dann ueberhaupt die möglichkeit nur ein & zu schreiben, so dass dann in jedem Fall beide Bedingungen ueberprueft werden?
    Computer lösen Probleme, die man vorher nicht hatte.

  10. #10
    Interessierte/r
    Registriert seit
    12.01.2009
    Ort
    nähe Trier
    Alter
    35
    Beiträge
    131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Java - "null" in Ausgabe?

    Ich hab zwar ein Beispiel mit einem boolischen Ausdruck gebracht, aber & ist ein Bit-Operator und sollte auch nur bei Bit-Operationen verwendet werden. Deshalb werden auch immer beide Seiten des Ausdruckes ausgewertet.

    && ist ein Boolischer Operator und ist wie oben gezeigt für boolische Ausdrücke.

    Ich hab beides an boolischen Ausdrück gezeigt, weil mein meiner Meinung nach den Unterschied besser zeigen kann.

    Gruß

    Sascha

Ähnliche Themen

  1. Java Menü - "Steuerelement aktivieren"
    Von im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 16.09.2007, 19:44
  2. php: "bitte warten" oder "login läuft"
    Von phore im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 05.04.2006, 18:18
  3. Vertikales Java Menü "verankern"
    Von im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 5
    Letzter Beitrag: 14.08.2004, 13:43
  4. Text immer "unten" und "rechts" am Frame
    Von Valdyn im Forum HTML & CSS Forum
    Antworten: 5
    Letzter Beitrag: 25.05.2004, 19:14
  5. Was sind "Java-Servlets"?
    Von Romi im Forum HTML & CSS Forum
    Antworten: 5
    Letzter Beitrag: 14.04.2003, 19:24

Stichworte

Berechtigungen

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