Witam,
Ostatnio zacząłem się uczyć Javy. Napisałem prosty kalkulator, jednak wyskoczyły mi w nim 2 błędy dotyczące zmiennych.
import java.util.Scanner;
public class Kalkulator1 {
public static void main(String[] args) {
do{
//MENU
System.out.println("Wpisz odpowiednią cyfrę, aby wykonać potrzebne działanie");
System.out.println("1) dodawanie \n2) odejmowanie \n3) mnożenie \n4) dzielenie \n5) potęgowanie \n6) pierwiastkowanie \n7) liczba bezwzględna \n8) zaokrąglenie");
Scanner in1 = new Scanner(System.in);
int menu = in1.nextInt();
switch(menu){
case 1:
System.out.print("Podaj pierwszą liczbę: ");
Scanner inA = new Scanner(System.in);
double a = inA.nextDouble();
System.out.print("Podaj drugą liczbę: ");
Scanner inB = new Scanner(System.in);
double b = inB.nextDouble();
System.out.println(a+" + "+b+" = "+suma(a, b));
break;
case 2:
System.out.print("Podaj pierwszą liczbę: ");
Scanner inC = new Scanner(System.in);
double c = inC.nextDouble();
System.out.print("Podaj drugą liczbę: ");
Scanner inD = new Scanner(System.in);
double d = inD.nextDouble();
System.out.println(c+" - "+d+" = "+roznica(c, d));
break;
case 3:
System.out.print("Podaj pierwszą liczbę: ");
Scanner inE = new Scanner(System.in);
double e = inE.nextDouble();
System.out.print("Podaj drugą liczbę: ");
Scanner inF = new Scanner(System.in);
double f = inF.nextDouble();
System.out.println(e+" * "+f+" = "+mnozenie(e, f));
break;
case 4:
System.out.print("Podaj dzielną: ");
Scanner inG = new Scanner(System.in);
double g = inG.nextDouble();
System.out.print("Podaj dzielnik: ");
Scanner inH = new Scanner(System.in);
double h = inH.nextDouble();
System.out.println(g+" / "+h+" = "+dzielenie(g, h));
break;
case 5:
System.out.print("Podaj liczbę: ");
Scanner inI = new Scanner(System.in);
double i = inI.nextDouble();
System.out.print("Podaj potegę: ");
Scanner inJ = new Scanner(System.in);
double j = inJ.nextDouble();
System.out.println(i+" do potęgi "+j+" = "+potegowanie(i, j));
break;
case 6:
System.out.print("Podaj liczbę: ");
Scanner inK = new Scanner(System.in);
double k = inK.nextDouble();
System.out.println("Pierwiastek z liczby "+k+" równa się "+pierwiastkowanie(k));
break;
case 7:
System.out.print("Podaj liczbę: ");
Scanner inL = new Scanner(System.in);
double l = inL.nextDouble();
System.out.println("Liczba bezwzględna z liczby "+l+" to "+liczbaBezwzgledna(l));
break;
case 8:
System.out.print("Podaj liczbę: ");
Scanner inM = new Scanner(System.in);
double m = inM.nextDouble();
System.out.println("Zaokrąglona do całości liczba "+m+" równa się "+zaokraglenie(m));
break;
}
//PETLA
do{
System.out.println("Wpisz 1, aby ponownie wykonać dowolne działanie, lub 2 aby wyjść z programu");
Scanner inLiczba = new Scanner(System.in);
int liczba = inLiczba.nextInt();
}while(liczba != 1 && liczba != 2);
}while(liczba == 1);
}
//METODY (FUNKCJE)
static double suma(double a, double b){
return a + b;
}
static double roznica(double a, double b){
return a - b;
}
static double mnozenie(double a, double b){
return a * b;
}
static double dzielenie(double a, double b){
return a / b;
}
static double potegowanie(double a, double b){
return Math.pow(a, b);
}
static double pierwiastkowanie(double a){
return Math.sqrt(a);
}
static double liczbaBezwzgledna(double a){
return Math.abs(a);
}
static int zaokraglenie(double a){
return (int) Math.round(a);
}
}
Błędy wyskakują mi tutaj:
}while(liczba != 1 && liczba != 2);
}while(liczba == 1);
Błędy dotyczą zmiennej liczba. Mam jeszcze jedno pytanie. Dlaczego powyższe metody muszą być statyczne (wcześniej nie były statyczne i wyskakiwały mi błędy)?
Pozdrawiam,
Piotrek