Hallo Leute,
ich starte mal einen zweiten Versuch
und zwar möchte ich einen taschenrechner programmieren, der erst eine zahl erfragt, dann einen operaten (+,- usw) und dann die zweite zahl.
dann soll er je nach operant das ergebnis ausgeben...
habe jetzt schon ein bisschen von dem geschafft was er machen soll aber irgendwie hab ich noch fragen..
hier erstmal der Code
Ich weiss, die Klammerung is ne Katastrophe, muss mir die Konventionen dafür nochmal zu gemüte führen...
Was ich nicht checke ist :
1.) oben bei der Methode fakultaet sagt er irgendwas von illegal modifier, hab schon mit klammerung usw rumgespielt aber irgendwie wirds nicht ( auch static weglassen bringt nichts).
2.) wenn ich im switch case block das break reinmache, hört er nach dem angegebenen schritt auf (was ja soweit klar ist), allerdings wäre es schön, wenn er danach wieder zum anfang sprint. also dachte ich, ich probiere es mit nem return, allerdings macht er dann das gleiche.
wenn ich es weglasse, gibt er das ergebnis richtig aus, aber dann halt auch von allen anderen switch anweisungen...
3.) kann ich eigentlich auch ne for schleife in einem switch case block machen oder ist das unüblich oder nachteilhaft?
4.)hatte erst zahl 1 und zahl2 als integer, soll aber ein double sein. gibt es eine möglichkeit dass ich z.b. 12 und 2,5 addieren kann ohne dass ein input mismatch kommt? bei 12,0 und 2,5 klappt alles prima....
vielen dank schonmal für eure hilfe!
lG
eisk4lt
ich starte mal einen zweiten Versuch
und zwar möchte ich einen taschenrechner programmieren, der erst eine zahl erfragt, dann einen operaten (+,- usw) und dann die zweite zahl.
dann soll er je nach operant das ergebnis ausgeben...
habe jetzt schon ein bisschen von dem geschafft was er machen soll aber irgendwie hab ich noch fragen..
hier erstmal der Code
Java:
import java.util.Scanner;
public class Taschenrechner {
public static void main(String[] args) {
// TODO Auto-generated method stub
public static long fakultaet (int n) {
if (n== 0 || n==1)
System.out.println("1");
else
System.out.println(n*fakultaet(n-1));
Scanner ichbineinscanner = new Scanner(System.in);
double zahl1;
int operant;
double zahl2;
System.out.println("Herzlich Willkommen im Taschenrechner");
System.out.println("Bitte geben Sie eine Zahl ein: ");
zahl1 = ichbineinscanner.nextDouble();
System.out.print("Bitte geben Sie jetzt die gewünschte"
+ " Rechenoperation an => <1> = + <2> = - <3> = Fakultät ");
System.out.print("<4> = Runden <0> = Ende);");
operant = ichbineinscanner.nextInt();
switch (operant) {
case 0:
System.out.println("E N D E");
System.exit(0);
}
System.out.println("Bitte geben Sie nun die zweite Zahl ein: ");
zahl2 = ichbineinscanner.nextDouble();
switch (operant) {
case 1:
System.out.println(zahl1 + zahl2);
break;
case 2:
System.out.println(zahl1 - zahl2);
break;
case 3:
System.out.println("hier soll die Fakultät ausgegeben werden");
break;
case 4:
System.out.println(Math.round(zahl1));
break;
}
}
}
}
Ich weiss, die Klammerung is ne Katastrophe, muss mir die Konventionen dafür nochmal zu gemüte führen...
Was ich nicht checke ist :
1.) oben bei der Methode fakultaet sagt er irgendwas von illegal modifier, hab schon mit klammerung usw rumgespielt aber irgendwie wirds nicht ( auch static weglassen bringt nichts).
2.) wenn ich im switch case block das break reinmache, hört er nach dem angegebenen schritt auf (was ja soweit klar ist), allerdings wäre es schön, wenn er danach wieder zum anfang sprint. also dachte ich, ich probiere es mit nem return, allerdings macht er dann das gleiche.
wenn ich es weglasse, gibt er das ergebnis richtig aus, aber dann halt auch von allen anderen switch anweisungen...
3.) kann ich eigentlich auch ne for schleife in einem switch case block machen oder ist das unüblich oder nachteilhaft?
4.)hatte erst zahl 1 und zahl2 als integer, soll aber ein double sein. gibt es eine möglichkeit dass ich z.b. 12 und 2,5 addieren kann ohne dass ein input mismatch kommt? bei 12,0 und 2,5 klappt alles prima....
vielen dank schonmal für eure hilfe!
lG
eisk4lt