(Taschen)Rechner

krys001

Mitglied
Moin ihr Lieben,
hab n kleines Problem.
habe mir folgenden code gebastelt:
Java:
package informatik1;

public class Taschenrechner {
    public static void main(String[] args) {

        // Abfrage array
        System.out.print("Wie viele Zahlen wollen sie Eingeben? ");
        int groeße = new java.util.Scanner(System.in).nextInt();
        int array[] = new int[groeße];
        // Platz schaffen
        for (int platz = 0; platz < array.length; platz++) {
            System.out.println("Bitte geben sie die nächste Zahl ein: ");
            int zahl = new java.util.Scanner(System.in).nextInt();
            array[platz]=zahl;
        }
        // Rechenoperation
        System.out.println("Wollen sie (a)ddieren oder (m)ultipizieren? ");
        String wahl = new java.util.Scanner(System.in).nextLine();
        // Ausgabe
        if (wahl == "a") {
            System.out.println(addition(array));
        } else if (wahl == "m") {
            System.out.println(multiplikation(array));
        } else {
            System.out.println("Falsche Eingabe");
        }

    }

    public static int addition(int[] array) {
        int Summe = 0;
        for (int laenge = 0; laenge < array.length; laenge++) {
            Summe += array[laenge];
        }
        return Summe;
    }

    public static int multiplikation(int[] array) {
        int Produkt = 1;
        for (int laenge = 0; laenge < array.length; laenge++) {
            Produkt *= array[laenge];
        }
        return Produkt;
    }
   
}
funktioniert soweit, aber bei der eingabe für die rechenoperation sollte er im falle a auf addieren im falle m auf multiplizieren gehen.
Jedoch gibt er bei egal welcher eingabe falsche eingabe aus. Was kann ich besser machen?
 
Man kann sowohl compare als auch equals verwenden.

"m".equals(wahl)
und
"m".compareTo(wahl) == 0

liefern das gleiche. Aufpassen muss man, wenn wahl == null werden kann. Dann unterscheidet sich das Verhalten.
 
@noelelias
Zum Beispiel? Ich programmiere zwar erst seit 1 1/2 Jahren, aber mir ist in der Zeit noch kein sinnvoller == -Vergleich bei Strings und nur genau einer bei Objekten begegnet.
 
Strings in Java sind schrecklich mal kann man Sie mit == vergleichen mal nicht...
Strings kann man NIE mit == vergleichen. Man kann allgemein keine Objekte mit == vergleichen. Mit == vergleich man bei Objekten die Referenzen. Bei Strings besteht dadurch das sie immutable sind die möglichkeit, dass der Complier es so optimiert, dass sie gleich sein KÖNNEN.
 

Zurück
Oben