# bedingte Anweisungen



## Sparky (3. Dez 2012)

Hey,
Ich habe eine Hausaufgabe bekommen, wo ich nicht weiterkomme.

Ein Baumarkt verlangt für Schrauben, Muttern und Unterlegscheiben folgende Preise:
ˆ 5 Cent pro Schraube
ˆ 4 Cent pro Mutter
ˆ 1 Cent pro Unterlegscheibe
Schreiben Sie ein Programm, das den Anwender nach der Anzahl der Schrauben, Muttern und Unterlegscheiben fragt .

```
import java.io.*;
class baumarkt
{
public static void main (String[] args) throws IOException
{
BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in));
String input;
// Erg¨anzen Sie hier die ben¨otigten Anweisungen
}
}
```
Ergänzen Sie an der angegebenen Stelle die erforderlichen Anweisungen zum Einlesen der Eingabedaten und
Berechnung des Rechnungsbetrags. Zusätzlich soll das Programm die Bestellung überprüfen: Es köonnte ein
Fehler sein, wenn mehr Schrauben als Muttern oder umgekehrt bestellt werden. In diesem Fall soll das Programm daher die Meldung “Kontrollieren Sie Ihre Bestellung!” ausgeben, andernfalls “Die Bestellung ist in Ordnung.”
In jedem Fall soll der zu zahlende Gesamtbetrag in Cent als Ganzzahl ausgegeben werden.

So soll es aussehen: 

Ihre Bestellung im Baumarkt XYZ, Inhaber: MeinVorname MeinNachname
Anzahl Schrauben:
12
Anzahl Muttern:
8
Anzahl Unterlegscheiben:
24
Kontrollieren Sie Ihre Bestellung!
Gesamt-Rechnungsbetrag: 116 Cent


Leider ist das Skript unter aller Sau.

Ich habe es mir so vorgestellt 


```
import java.io.*;  
class baumarkt  
{  
   public static void main (String[] args) throws IOException  
   {  
      BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in));  
      String input;  
      
int s;
System.out.println("Anzahl Schrauben:");
input = stdin.readLine();
s = Integer.parseInt( input );

int m;
System.out.println("Anzahl Muttern:");
input = stdin.readLine();
m = Integer.parseInt( input );

int u;
System.out.println("Anzahl Unterlegscheiben");
input = stdin.readLine();
u = Integer.parseInt( input );

      
      
      
      
 
      // Ergänzen Sie hier die benötigten Anweisungen  
 
   }  
}
```
Aber da sind ja noch keine Anweisungen für If drinn, die ja eigentlich drinstehen sollte.

Ich habe dann noch was gefunden aber ich verstehe es leider nicht so ganz.



```
import java.io.*;
// Diese Bibliothek stellt Operationen für die Ein-/Ausgabe zur Verfügung und wird importiert
 
class ZahlenTester
{
  public static void main (String[] args) throws IOException
  // Das Programm übernimmt die Verwaltung von Ein-/Ausgabefehlern
  {
    BufferedReader stdin = new BufferedReader ( new InputStreamReader( System.in ) );
    // Variable zur Entgegennahme von Eingaben
    String inData; // Variable zur Speicherung der entgegengenommenen Eingabedaten
    int zahl;
 
    System.out.println("Geben Sie einen Integer ein:");
    inData = stdin.readLine();
    zahl = Integer.parseInt( inData ); // inData in int konvertieren
 
    if ( zahl < 0 )
    System.out.println("Die Zahl " + zahl + " ist negativ");
    else
    System.out.println("Die Zahl " + zahl + " ist positiv");
 
    System.out.println("Good-bye fuer jetzt");
  }
}
```
Wie wandle ich die Variable um,damit es eingelesen wird. vor allem  Zeile 14-16 macht mir kopfzerbrechen,da ich es gar nicht verstehe was ich da und warum umwandle.

Danke für die hoffentlich baldige Hilfe.

Liebe Grüße


----------



## XHelp (4. Dez 2012)

Du ließt eine Zeile als Text ein, wo du aber eine Zahl vermutest. Deswegen machst du diesen Text zu einer Zahl... Aber ansonsten wüsste ich jetzt nicht, was man da konkret sagen könnte. Wenn du *konkrete* Fragen stellst, kann man da bestimmt mehr damit anfangen.


----------



## sparky (6. Dez 2012)

Wie wandel ich das eingegebene in die Schleife um. 
D.h. ich gebe ein Zahl ein, diese wird vergliechen mit einer anderen und wenn die ungleich sind, dann wird es zurückgegeben. Wenn nicht, soll es berechnet werden.


----------



## Trolllllll (6. Dez 2012)

Ähm du meinst sowas?


```
int s=-1;
while (s!=10){//oder ein int wert, was auch immer
   System.out.println("Geben sie 10 ein");
   input = stdin.readLine();
   s = Integer.parseInt( input );
}
```


----------



## sparky (6. Dez 2012)

Genau in die Richtung, bloss soll die Zahl der Variable S z.b. durch eingabe erfolgen, d.h. s wird durch die Nutzerangabe erst definiert und dann verglichen.


liebe grüße


----------



## Trolllllll (6. Dez 2012)

Genau das passiert da doch, und die 10 kannst du wenn du als einzugebende Zahl was anderes haben willst, ersetzen durch was auch immer du willst.

Wenn der Code dir zu kompliziert ist, dann vielleicht so


```
boolean nichtGefunden=true;
int s;
while (nichtGefunden){
   System.out.println("Geben sie 10 ein");
   input = stdin.readLine();
   s = Integer.parseInt( input );
   if (s==10){ // wenn nicht 10 dann jetzt hier ersetzen
     nichtGefunden=false;
   }
}
```


----------

