# Eingegebenen String per IF-Schleife überprüfen



## Steinheimer (11. Jun 2007)

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


```
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.");
  }
}
```


----------



## The_S (11. Jun 2007)

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


----------



## EOB (11. Jun 2007)

weil ma strings nicht mit == vergleicht. probier ma mit equals. also so:


```
if(string.equals("foo"))...
```


grüße


----------



## EOB (11. Jun 2007)

doppelpost  :roll:



> gibt es keine if-schleife!


 -->  :lol:  :lol:


----------



## bygones (11. Jun 2007)

und damit alle schoen brav das noch erklaeren koennen


```
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

```
true
true
```


----------



## Steinheimer (11. Jun 2007)

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:


----------

