Eingegebenen String per IF-Schleife überprüfen

Status
Nicht offen für weitere Antworten.

Steinheimer

Mitglied
Hallo allerseits,

ich habe hier ein kleines Programm, welches den Gesamtwiderstand zweier parallel oder in Reihe geschalteter Widerstände (R1, R2) nach Eingabe der beiden Widerstandswerte berechnen soll.

Bevor überhaupt irgendwelche Werte abgefragt werden, wird der Benutzer gefragt, ob es sich um eine Parallel- oder Reihenschaltung handelt. Dazu soll der Benutzer entweder den Buchstaben P/p oder R/r eingeben.

Allerdings greift die Überprüfung danach in der IF-Schleife anscheinend nicht, da immer eine von mir vorher festgelegte Fehlermeldung ausgegeben wird, welche eigentlich nur bei einer komplett anderen Eingabe ausgegeben werden soll.

Im Nachfolgenden der Code. Falls jemand den Fehler findet und er ihn mir erklären kann, wäre ich sehr dankbar. 🙂

Viele Grüße,
Thomas

Code:
import java.io.*;

public class Widerstand
{
  public static void main (String argv[]) throws IOException
  {
    BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

    String eingabe, wahl;
    Integer r1, r2, gesamtwert;

    System.out.println("Widerstands-Schaltung");

    System.out.println("(P)arallelschaltung oder (R)eihenschaltung?");
    eingabe = input.readLine();
    wahl = eingabe;
    

    
    System.out.println("Debug-Ausgabe der Variable \"wahl\": >"+wahl+"<");
    
    System.out.print("R1 in Ohm: ");
    eingabe = input.readLine();
    r1 = Integer.parseInt(eingabe);

    System.out.print("R2 in Ohm: ");
    eingabe = input.readLine();
    r2 = Integer.parseInt(eingabe);

    if (wahl == "P" || wahl == "p")
    {
      gesamtwert = (r1*r2)/(r1+r2);
      
      System.out.println("Der Gesamtwert der Parallelschaltung ist");
      System.out.println(gesamtwert+" Ohm");
    }
    else
    {
      if (wahl == "R" || wahl == "r")
      {
        gesamtwert = r1+r2;

        System.out.println("Der Gesamtwert der Reihenschaltung ist");
        System.out.println(gesamtwert+" Ohm");
      }
      else
      {
        System.out.println("Fehler!");
      }

    }
    
    System.out.println("Programmende Widerstand.");
  }
}
 
weil ma strings nicht mit == vergleicht. probier ma mit equals. also so:

Code:
if(string.equals("foo"))...


grüße
 
und damit alle schoen brav das noch erklaeren koennen

Code:
public class TestClass {
    public static void main( String[] args ) throws IOException {
      String p = "p";
      
      H h = new H();
      
      System.out.println(p == "p");
      System.out.println(h.h == "h");
    }
}

class H {
    String h = "h";
}

ausgabe
Code:
true
true

🙂
 
Hobbit_Im_Blutrausch hat gesagt.:
Also,

1. gibt es keine if-schleife! www.if-schleife.de
2. Strings vergleicht man mit equals
3. verwende equalsIgnoreCase oder toUpper/LowerCase um deine Abfrage zu verkürzen

:lol: Auf die Sache mit dem IF fall ich jedesmal wieder aufs Neue rein. 😀

Aber vielen Dank für die schnelle Hilfe. Hat geklappt! 😀 :toll:
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben