Simples Java Programm

Tuts4you

Erfahrenes Mitglied
Hallo :)

Gleich vorweg, ich bin Java-Newbie...
Hab mich dieses Semester für "Einführung in die strukturierte und objektorientierte Programmierung" eingeschrieben...und bin gerade dabei ein Aufgabenblatt zu lösen.

"2 ganze Zahlen sollen eingelesen werden. Danach ein Operator (+,-,*,/) und am Ende sollen die Zahlen mit den Operator berechnet werden.
Wird q anstatt einer Zahl eingegeben soll das Programm beendet werden.

Meine Lösung sieht wie folgt aus:

PHP:
package praktikum.ab2;
import esop.simpleIO.*;

public class aufgabe7 {

    //Methode zum Berechnen von a und b
    static void berechnen(int a, int b, char c) {
        if (c == '+')
            Out.println(a+b);
        if (c == '-')
            Out.println(a-b);
        if (c == '*')
            Out.println(a*b);
        if (c == '/')
            Out.println(a/b);
    }
    
    
        
    
    public static void main(String[] args) {
        int a,b;
        char c;
        
       
        Out.println("Geben Sie eine Zahl ein:");
        a = In.readInt();
        
        Out.println("Geben sie eine zweite Zahl ein:");
        b = In.readInt();
        
        Out.println("Geben Sie einen Operator ein +,-,*,/");
        c = In.readChar();
    
        berechnen(a,b,c);
    
    }
}
Diese Lösung funktioniert auch, aber ist sie auch richtig? oder gibt es eine bessere Lösung? Und vorallem, wie mache ich das mit q?

Hoffe auf eure Hilfe

liebe Grüße

Michael
 
Bessere Lösungen gibt es bestimmt ;) und mit dem q würde ich es so machen
Java:
...
 c = In.readChar();
if(c != 'q'){
berechnen(a,b,c);
}
macht folgendes: wenn c NICHT GLEICH q ist dann berechne, sonst mach garnichts und da dein programm keine Endlosschleife hat wird es dann auch beendet,ansonsten wenn es eine Endlosschleife hat dann
Java:
...
 c = In.readChar();
if(c != 'q'){
berechnen(a,b,c);
}else{
System.exit(0);
}
 
mhm...
aber q kann ja bereits bei der ersten Zahl eingegeben werden...
dh es nützt mir nix das q erst beim "berechnen" auszulesen...
verstehst was ich mein?

:Geben Sie eine Zahl ein (q-quit):
:Geben Sie noch eine Zahl ein (q-quit):
:Geben Sie einen Operatort ein:
:Das Ergebnis lautet

danke...
 
würde das ganze mit einer Do-While schleife Lösen.
Code:
var eingabe = 0;
var gesamt = 0;
do {
    eingabe = parseFloat(prompt("Bitte nennen sie mir ihren Betrag"));
    gesamt = gesamt + eingabe;
} while (eingabe != q)
document.write("Der Gesamtbetrag lautet" gesant)
Habs leider etwas eilig und keine Zeit zum prüfen obs wirklich so klappt, aber sollte doch alles soweit stimmen :)

ARGH falsches Forum, das bezieght sich ja auf JavaScript :(
 
Stimmt, zu schnell getippt, zuwenig nachgedacht, tja dann musst du jedesmal überprüfen ob q eingeben wurde, ich weiss halt nicht wie deine Klasse In aufgebaut ist, ob sie Exceptions wirft oder auffängt(vermutlich eher zweiteres..) ansonsten halt jedesmal testen ob q eingeben wurde(am besten eine Methode dafür schreiben..) poste evt. mal die In Klasse
 
danke erstmals für deine Hilfe!
So, das ist meine funktionierende Lösung, was hälst davon?
PHP:
package praktikum.ab2;
import esop.simpleIO.*;


public class aufgabe7 {

    //Checken ob das Programm beendet werden soll...
    static void check (String a,String b){
        if (a.startsWith("q") || b.startsWith("q")){
            Out.println("Abbruch durch den Benutzer!");
            System.exit(1);
        }
        
    }
    
    //Umwandeln von String to int und Berechnung...
    static void berechnen (String a, String b, char o){
        int A = Integer.parseInt(a);
        int B = Integer.parseInt(b);
        
        if (o == '+')
            Out.println(A+B);
        if (o == '-')
            Out.println(A-B);
        if (o == '*')
            Out.println(A*B);
        if (o == '/')
            Out.println(A/B);
                
        
    }
    public static void main(String[] args) {
        String a, b;
        char o;
        
        Out.println("Bitte geben Sie eine ganze Zahl ein: q-quit");
        a = In.readString();
        check(a,a);
        
        Out.println("Bitte geben Sie noch eine ganze Zahl ein: q-quit");
        b = In.readString();
        check(b,b);
        
        Out.println("Bitte geben Sie einen Operator ein: +,-,*,/");
        o = In.readChar();
        
        berechnen(a,b,o);

    }

}
liebe Grüße

Michael
 
Zurück