Witam. Jestem początkującym, może nie koderem, ale "programistą" Javy tak. Chciałem się wyrwać z szablonów książki i stworzyć coś własnego i stworzyłem... kalkulator. Problem jest taki, że wyświetla on pierwszy tekst, mamy możliwość wpisania znaków iii... i znowu mamy możliwość wpisania znaków i tak w kółko. Nie zwracajcie uwagi na brak hermetyzacji, kupe błędów, kiepskich i wolnych rozwiązań, bo do tego mi służy książka. Zamieszczam kod wszystkich 3 klas, tak na wszelki wypadek :) Z góry dzięki za pomoc.
public class KlasaGlowna{
public static void main (String[] args){
Liczba[] abc = new Liczba[100];
DaneWejsciowe A = new DaneWejsciowe();
System.out.println("Witaj, tan program to prosty kalkulator. Podaj liczbe: ");
String liczba = A.pobierzDaneWejsciowe();
int liczbaPierwsza = Integer.parseInt(liczba);
while (1 == 1){
int x = 0;
String znakDzialania = A.pobierzDaneWejsciowe();
boolean xd = false;
while (xd = false){
if (znakDzialania == "+"){
System.out.println("Podaj liczbe: ");
String liczbaa = A.pobierzDaneWejsciowe();
int liczbaDruga = Integer.parseInt(liczbaa);
abc[0].wartoscPierwsza = liczbaPierwsza + liczbaDruga;
System.out.println("Wynik to: " + abc[0].wartoscPierwsza);
abc[0].wartoscEnta = abc[0].wartoscPierwsza;
xd = true;
break;
}
if (znakDzialania == "-"){
System.out.println("Podaj liczbe: ");
String liczbaa = A.pobierzDaneWejsciowe();
int liczbaDruga = Integer.parseInt(liczbaa);
abc[0].wartoscPierwsza = liczbaPierwsza - liczbaDruga;
System.out.println("Wynik to: " + abc[0].wartoscPierwsza);
abc[0].wartoscEnta = abc[0].wartoscPierwsza;
xd = true;
break;
}
if (znakDzialania == "*"){
System.out.println("Podaj liczbe: ");
String liczbaa = A.pobierzDaneWejsciowe();
int liczbaDruga = Integer.parseInt(liczbaa);
abc[0].wartoscPierwsza = liczbaPierwsza * liczbaDruga;
System.out.println("Wynik to: " + abc[0].wartoscPierwsza);
abc[0].wartoscEnta = abc[0].wartoscPierwsza;
xd = true;
break;
}
if (znakDzialania == "/"){
System.out.println("Podaj liczbe: ");
String liczbaa = A.pobierzDaneWejsciowe();
int liczbaDruga = Integer.parseInt(liczbaa);
abc[0].wartoscPierwsza = liczbaPierwsza / liczbaDruga;
System.out.println("Wynik to: " + abc[0].wartoscPierwsza);
abc[0].wartoscEnta = abc[0].wartoscPierwsza;
xd = true;
break;
}
else{
System.out.println("Przepraszamy, zły znak");
}
}
while (x > 0){
if (znakDzialania == "+"){
System.out.println("Podaj liczbe: ");
String liczbaaa = A.pobierzDaneWejsciowe();
abc[x].wartoscEnta = Integer.parseInt(liczbaaa);
abc[x].wartoscWynikowa = abc[x].wartoscEnta + abc[x -1].wartoscEnta;
System.out.println("Wynik to: " + abc[x].wartoscWynikowa);
break;
}
if (znakDzialania == "-"){
System.out.println("Podaj liczbe: ");
String liczbaaa = A.pobierzDaneWejsciowe();
abc[x].wartoscEnta = Integer.parseInt(liczbaaa);
abc[x].wartoscWynikowa = abc[x].wartoscEnta - abc[x -1].wartoscEnta;
System.out.println("Wynik to: " + abc[x].wartoscWynikowa);
break;
}
if (znakDzialania == "*"){
System.out.println("Podaj liczbe: ");
String liczbaaa = A.pobierzDaneWejsciowe();
abc[x].wartoscEnta = Integer.parseInt(liczbaaa);
abc[x].wartoscWynikowa = abc[x].wartoscEnta + abc[x -1].wartoscEnta;
System.out.println("Wynik to: " + abc[x].wartoscWynikowa);
break;
}
if (znakDzialania == "/"){
System.out.println("Podaj liczbe: ");
String liczbaaa = A.pobierzDaneWejsciowe();
abc[x].wartoscEnta = Integer.parseInt(liczbaaa);
abc[x].wartoscWynikowa = abc[x].wartoscEnta / abc[x -1].wartoscEnta;
System.out.println("Wynik to: " + abc[x].wartoscWynikowa);
break;
}
else{
System.out.println("Przepraszamy, zły znak");
}
}
x++;
}
}
}
import java.io.*;
public class DaneWejsciowe {
public String pobierzDaneWejsciowe(){
String wierszWej = null;
try{
BufferedReader sw = new BufferedReader(new InputStreamReader(System.in));
wierszWej = sw.readLine();
if (wierszWej.length() == 0) return null;
}
catch (IOException e){
System.out.println("IOException: " + e);
}
return wierszWej;
}
}
class Liczba {
int wartoscPierwsza = 0;
int wartoscEnta = 0;
int wartoscWynikowa = 0;
}