Mal rechnung

Dieses Thema im Forum "Java Basics - Anfänger-Themen" wurde erstellt von fleckdalm, 30. Okt. 2010.

  1. fleckdalm

    fleckdalm Neues Mitglied

    Ich habe folgendes geschrieben:

    Code (Java):

    public class Multi {

       private int Zahl1;
       private int Zahl2;
       private int Produkt;
       private int Zahl4;
       private String eingabeJa;
       private String Ja="Ja";
        private Scanner scan= new Scanner (System.in);
        private int Produkt2;


       public void eingabe()
        {
           
            System.out.println("Geben sie die erste Zahl ein");
            Zahl1= scan.nextInt();
            System.out.println("Geben sie die zweite Zahl ein");
            Zahl2= scan.nextInt();
           
        }

       public void Zahl4()
        {
            System.out.println("Wenn sie noch eine Zahl eingeben wollen schreieben sie Ja sonst schreiben sie nein");
            eingabeJa=scan.next();

       

           if ((eingabeJa == null ? Ja == null : eingabeJa.equals(Ja)))
                   {

                       System.out.println("Geben sie die nächste Zahl ein");
                     
                      Zahl4= scan.nextInt();
    Produkt2=Produkt*Zahl4;
                   Multi multi=new Multi();
                   multi.Zahl4();

                   
            }
     else Produkt2=Produkt;
       }
       
       public void berechnung()
        {
       Produkt=Zahl1*Zahl2;
       }
       
       public void ausgabe()
        {
           
            System.out.println("Das Produkt ist: "+Produkt2);
       }
       
        public static void main(String[] args) {
           
            Multi multi=new Multi();
            multi.eingabe();
            multi.berechnung();
            multi.Zahl4();  
            multi.ausgabe();
           
        }

    }
     

    Wieso geht es nicht dass er mehr als 3 Zahlen multipliziert normal sollten die Variablen Produkt2 und die Zahl4 immer überschrieben werden sodass zum Schlus das Produkt aller Zahlen rauskommt warum geht das nicht?
     
  2. Der Müde Joe

    Der Müde Joe Neues Mitglied

    >Multi multi=new Multi();

    damit erstellst du ein neues Objekt, welches nicht mehr die gleichen Werte besitzt wie der Ursprung, Dann rechnest du was auf dem neuen Objekt, dies lässt aber das eigenltiche (aus der Main) völlig kalt.


    EDIT:
    So als kleines Beipsiel:
    Code (Java):
    public class Multi {

        private int i;

        public Multi(int i) {
            this.i = i;
        }

        public void add() {
            i = i + 1;

            // ein anderes Objekt.... hat nix mit dem
            // gemeinsam, von dem add aufgerufen wurde
            Multi m = new Multi(27 + this.i);
            System.out.println(m.i);
            System.out.println(this.i);

        }

        public static void main(String[] args) {
            // erstes objekt
            Multi multi = new Multi(1);
            multi.add();
            multi.add();
            multi.add();
            System.out.println("Multi: " + multi.i);
        }

    }
     
    Zuletzt bearbeitet: 30. Okt. 2010
  3. Haave

    Haave Neues Mitglied

    Mal abgesehen davon, dass Zeile 30 mit dem if und dem ternären ?-Operator ziemlich gruselig aussieht (;)):

    Das if wird nie ausgeführt. Du initilisierst den String [c]Ja[/c] doch schon zu anfang mit "Ja", warum sollte er [c]null[/c]sein? Prüfe zuerst, ob eingabeJa == null, falls nicht, prüfe, ob eingabeJa.equals("Ja"). (Das eingabeJa.equals("Ja") reicht vollkommen aus, du brauchst nicht durch das ganze Programm einen String Ja mitzuziehen, der nur an dieser Stelle benutzt wird).
     
Die Seite wird geladen...