Variablen Problem: variable operator might not have been initialized

Crypton

Mitglied
Hallo,
mein Kumpel und ich haben ein Problem 🙁 :
Wir sollen für unseren Informatik-Unterricht einen Rechner Basteln, haben aber das Problem, dass uns der JavaEditor folgendes ausspuckt: variable operator might not have been initialized

Was vielleicht wichtig sein könnte: Im Grunde haben wir vor 2 Wochen mit java angefangen. 😀

Nun wollten wir mal wissen ob uns jemand weiterhelfen kann.
Folgend mal unser Rechner bisher:
Java:
import java.util.*;

public class Rechner {

  public static void main(String[] args) {

         String operator;
         double zahl1;
         double zahl2;
         double ergebniszahl;
         Scanner Eingabe;
         Eingabe= new Scanner(System.in);


         System.out.println("Bitte geben Sie nun +, -, x, oder : ein!");
         System.out.println("Das Programm rechnet mit 2 zahlen!");

         if (operator== "+" );                                                                                                     //PLUS
             {
              System.out.println("Sie haben sich für eine Addition entschieden");
              System.out.println("Nun bitte den ersten Wert.");
              zahl1= Eingabe.nextDouble();
              System.out.println("So, nun noch der zweite Wert, dann wird das Ergebnis generiert.");
              zahl2= Eingabe.nextDouble();
              ergebniszahl= zahl1 + zahl2;
              System.out.println("Ihre Rechnung lautet:"); System.out.print(zahl1 + "+" + zahl2 + "=" + ergebniszahl);

             }
         if (operator== "-" );
             {                                                                                                                    //MINUS
              System.out.println("Sie haben sich für eine Subtraktion entschieden");
              System.out.println("Nun bitte den ersten Wert.");
              zahl1= Eingabe.nextDouble();
              System.out.println("So, nun noch der zweite Wert, dann wird das Ergebnis generiert.");
              zahl2= Eingabe.nextDouble();
              ergebniszahl= zahl1 - zahl2;
              System.out.println("Ihre Rechnung lautet:"); System.out.print(zahl1 + "-" + zahl2 + "=" + ergebniszahl);
              }
         if (operator== "x" );
             {
              System.out.println("Sie haben sich für eine Multiplikation entschieden");                                           //MAL
              System.out.println("Nun bitte den ersten Wert.");
              zahl1= Eingabe.nextDouble();
              System.out.println("So, nun noch der zweite Wert, dann wird das Ergebnis generiert.");
              zahl2= Eingabe.nextDouble();
              ergebniszahl= zahl1 * zahl2;
              System.out.println("Ihre Rechnung lautet:"); System.out.print(zahl1 + "x" + zahl2 + "=" + ergebniszahl);

             }
         if (operator== ":" );
             {                                                                                                                    //GETEILT
              System.out.println("Sie haben sich für eine Division entschieden");
              System.out.println("Nun bitte den ersten Wert.");
              zahl1= Eingabe.nextDouble();
              System.out.println("So, nun noch der zweite Wert, dann wird das Ergebnis generiert.");
              zahl2= Eingabe.nextDouble();
              ergebniszahl= zahl1 / zahl2;
              System.out.println("Ihre Rechnung lautet:"); System.out.print(zahl1 + ":" + zahl2 + "=" + ergebniszahl);

             }
         if (operator != "+" );
             {                                                                                                                    //FEHLER
              System.out.println("Sie haben keine korrekte Eingabe getätigt, bitte starten sie das Programm erneut!");

             }
         if (operator != "-" );
             {                                                                                                                    //FEHLER
              System.out.println("Sie haben keine korrekte Eingabe getätigt, bitte starten sie das Programm erneut!");

             }
         if (operator != "x" );
             {                                                                                                                    //FEHLER
              System.out.println("Sie haben keine korrekte Eingabe getätigt, bitte starten sie das Programm erneut!");

             }
         if (operator != ":" );
             {                                                                                                                    //FEHLER
              System.out.println("Sie haben keine korrekte Eingabe getätigt, bitte starten sie das Programm erneut!");

             }
              
  }
}
 
1. Semikolon muss da weg, es heißt:
Java:
if (condition) {
}
und 2. werden die String so weder auf Gleichheit noch auf Ungleichheit geprüft:
Java:
if (str1.equals(str2)) {
 //gleich
}
if (!str1.equals(str2)) {
  //ungleich
}
 
In Zeile (7) muss folgendes stehen:
Java:
String operator = "";

Und ihr müsst noch beachten, dass man Strings immer mit
Java:
string.equals(String s)
vergleicht.

Also bei euch in Zeiel 18 folgendermaßen:
Java:
operator.equals("+")
 
Besser nach der 10. Zeile:

Java:
Scanner eingabe = new Scanner (System.in);

System.out.println("Das Programm rechnet mit 2 zahlen!");
System.out.println("Bitte geben Sie nun +, -, x, oder : ein!");
operator = eingabe.next();
 
Zuletzt bearbeitet:
So wird der fehler von vorhin nichtmehr angezeigt, allerdings is das Problem jetzt, dass das Programm so aussieht:

Danach lässt es sich nur noch schließen...


Java:
import java.util.*;

public class Rechner {

  public static void main(String[] args) {

         String operator = "";
         double zahl1;
         double zahl2;
         double ergebniszahl;
         Scanner Eingabe;
         Eingabe= new Scanner(System.in);


         System.out.println("Bitte geben Sie nun +, -, x, oder : ein!");
         System.out.println("Das Programm rechnet mit 2 zahlen!");

         if (operator== "+" )                                                                                                     //PLUS
             {
              System.out.println("Sie haben sich für eine Addition entschieden");
              System.out.println("Nun bitte den ersten Wert.");
              zahl1= Eingabe.nextDouble();
              System.out.println("So, nun noch der zweite Wert, dann wird das Ergebnis generiert.");
              zahl2= Eingabe.nextDouble();
              ergebniszahl= zahl1 + zahl2;
              System.out.println("Ihre Rechnung lautet:"); System.out.print(zahl1 + "+" + zahl2 + "=" + ergebniszahl);

             }
         if (operator== "-" )
             {                                                                                                                    //MINUS
              System.out.println("Sie haben sich für eine Subtraktion entschieden");
              System.out.println("Nun bitte den ersten Wert.");
              zahl1= Eingabe.nextDouble();
              System.out.println("So, nun noch der zweite Wert, dann wird das Ergebnis generiert.");
              zahl2= Eingabe.nextDouble();
              ergebniszahl= zahl1 - zahl2;
              System.out.println("Ihre Rechnung lautet:"); System.out.print(zahl1 + "-" + zahl2 + "=" + ergebniszahl);
              }
         if (operator== "x" )
             {
              System.out.println("Sie haben sich für eine Multiplikation entschieden");                                           //MAL
              System.out.println("Nun bitte den ersten Wert.");
              zahl1= Eingabe.nextDouble();
              System.out.println("So, nun noch der zweite Wert, dann wird das Ergebnis generiert.");
              zahl2= Eingabe.nextDouble();
              ergebniszahl= zahl1 * zahl2;
              System.out.println("Ihre Rechnung lautet:"); System.out.print(zahl1 + "x" + zahl2 + "=" + ergebniszahl);

             }
         if (operator== ":" )
             {                                                                                                                    //GETEILT
              System.out.println("Sie haben sich für eine Division entschieden");
              System.out.println("Nun bitte den ersten Wert.");
              zahl1= Eingabe.nextDouble();
              System.out.println("So, nun noch der zweite Wert, dann wird das Ergebnis generiert.");
              zahl2= Eingabe.nextDouble();
              ergebniszahl= zahl1 / zahl2;
              System.out.println("Ihre Rechnung lautet:"); System.out.print(zahl1 + ":" + zahl2 + "=" + ergebniszahl);

             }
}
}
 
Vieles Dank schonmal, das hat schon einiges gebracht 😀

momentane Lage:



Aktuelles Programm:
Java:
import java.util.*;

public class Rechner {

  public static void main(String[] args) {

         String operator = "";
         double zahl1;
         double zahl2;
         double ergebniszahl;
         Scanner Eingabe = new Scanner(System.in);

         System.out.println("Das Programm rechnet mit 2 zahlen!");
         System.out.println("Bitte geben Sie nun +, -, x, oder : ein!");
         operator = Eingabe.next();

         if (operator== "+" )                                                                                                     //PLUS
             {
              System.out.println("Sie haben sich für eine Addition entschieden");
              System.out.println("Nun bitte den ersten Wert.");
              zahl1= Eingabe.nextDouble();
              System.out.println("So, nun noch der zweite Wert, dann wird das Ergebnis generiert.");
              zahl2= Eingabe.nextDouble();
              ergebniszahl= zahl1 + zahl2;
              System.out.println("Ihre Rechnung lautet:"); System.out.print(zahl1 + "+" + zahl2 + "=" + ergebniszahl);

             }
         if (operator== "-" )
             {                                                                                                                    //MINUS
              System.out.println("Sie haben sich für eine Subtraktion entschieden");
              System.out.println("Nun bitte den ersten Wert.");
              zahl1= Eingabe.nextDouble();
              System.out.println("So, nun noch der zweite Wert, dann wird das Ergebnis generiert.");
              zahl2= Eingabe.nextDouble();
              ergebniszahl= zahl1 - zahl2;
              System.out.println("Ihre Rechnung lautet:"); System.out.print(zahl1 + "-" + zahl2 + "=" + ergebniszahl);
              }
         if (operator== "x" )
             {
              System.out.println("Sie haben sich für eine Multiplikation entschieden");                                           //MAL
              System.out.println("Nun bitte den ersten Wert.");
              zahl1= Eingabe.nextDouble();
              System.out.println("So, nun noch der zweite Wert, dann wird das Ergebnis generiert.");
              zahl2= Eingabe.nextDouble();
              ergebniszahl= zahl1 * zahl2;
              System.out.println("Ihre Rechnung lautet:"); System.out.print(zahl1 + "x" + zahl2 + "=" + ergebniszahl);

             }
         if (operator== ":" )
             {                                                                                                                    //GETEILT
              System.out.println("Sie haben sich für eine Division entschieden");
              System.out.println("Nun bitte den ersten Wert.");
              zahl1= Eingabe.nextDouble();
              System.out.println("So, nun noch der zweite Wert, dann wird das Ergebnis generiert.");
              zahl2= Eingabe.nextDouble();
              ergebniszahl= zahl1 / zahl2;
              System.out.println("Ihre Rechnung lautet:"); System.out.print(zahl1 + ":" + zahl2 + "=" + ergebniszahl);

             }
}
}
 
Zum Glück hast du auch gelesen, was dir schon 2 Menschen hier geschrieben haben bezüglich der Stringvergleiche... :bahnhof:
 
ja nun noch in der if Abfrage anstatt == mit equals siehe :
Java:
import java.util.*;
 
public class Rechner {
 
  public static void main(String[] args) {
 
         String operator = "";
         double zahl1;
         double zahl2;
         double ergebniszahl;
         Scanner Eingabe = new Scanner(System.in);
 
         System.out.println("Das Programm rechnet mit 2 zahlen!");
         System.out.println("Bitte geben Sie nun +, -, x, oder : ein!");
         operator = Eingabe.next();
 
         if (operator.equals("+"))                                                                                                     //PLUS
             {
              System.out.println("Sie haben sich für eine Addition entschieden");
              System.out.println("Nun bitte den ersten Wert.");
              zahl1= Eingabe.nextDouble();
              System.out.println("So, nun noch der zweite Wert, dann wird das Ergebnis generiert.");
              zahl2= Eingabe.nextDouble();
              ergebniszahl= zahl1 + zahl2;
              System.out.println("Ihre Rechnung lautet:"); System.out.print(zahl1 + "+" + zahl2 + "=" + ergebniszahl);
 
             }
         if (operator.equals("-"))
             {                                                                                                                    //MINUS
              System.out.println("Sie haben sich für eine Subtraktion entschieden");
              System.out.println("Nun bitte den ersten Wert.");
              zahl1= Eingabe.nextDouble();
              System.out.println("So, nun noch der zweite Wert, dann wird das Ergebnis generiert.");
              zahl2= Eingabe.nextDouble();
              ergebniszahl= zahl1 - zahl2;
              System.out.println("Ihre Rechnung lautet:"); System.out.print(zahl1 + "-" + zahl2 + "=" + ergebniszahl);
              }
         if (operator.equals("x"))
             {
              System.out.println("Sie haben sich für eine Multiplikation entschieden");                                           //MAL
              System.out.println("Nun bitte den ersten Wert.");
              zahl1= Eingabe.nextDouble();
              System.out.println("So, nun noch der zweite Wert, dann wird das Ergebnis generiert.");
              zahl2= Eingabe.nextDouble();
              ergebniszahl= zahl1 * zahl2;
              System.out.println("Ihre Rechnung lautet:"); System.out.print(zahl1 + "x" + zahl2 + "=" + ergebniszahl);
 
             }
         if (operator.equals(":"))
             {                                                                                                                    //GETEILT
              System.out.println("Sie haben sich für eine Division entschieden");
              System.out.println("Nun bitte den ersten Wert.");
              zahl1= Eingabe.nextDouble();
              System.out.println("So, nun noch der zweite Wert, dann wird das Ergebnis generiert.");
              zahl2= Eingabe.nextDouble();
              ergebniszahl= zahl1 / zahl2;
              System.out.println("Ihre Rechnung lautet:"); System.out.print(zahl1 + ":" + zahl2 + "=" + ergebniszahl);
 
             }
}
}

dann müsste es eigentlich klappen .. .wurde aber auch oben schon erwähnt......

EDIT:
mal wieder zu langsam ;-)
 
Yo Danke!!
Jetzt läuft der mist endlich 😀 auch mit den Fehlermeldungen.
achja
@XHelp: sry aber ich hab das nich kapiert. ich habs dann mal mit
Java:
 if operator.equals("+")
probiert wie "jemandzehage" sagte, aber jetzt läufts ja. das ich da noch () darum machen muss, auf die Idee bin ich nicht gekommen.
 

Zurück
Oben