Cześć,
napisałem taki kod w Javie:
package treningi;
import java.util.*;
public class Cw
{
public static void main(String[] args)
{
System.out.println("Co chesz zrobić? \n1 -> dodawanie \n2 -> odejmowanie "
+ "\n3 -> mnożenie \n4 -> dzielenie \n5 -> dzielenie modulo \n6 -> silnia\n");
Scanner decyzja = new Scanner(System.in);
int d = decyzja.nextInt();
if (d == 1)
{
System.out.print("Podaj pierwszą liczbę: ");
Scanner wejscie = new Scanner(System.in);
int pierwsza_liczba = wejscie.nextInt();
System.out.print("Podaj drugą liczbę: ");
Scanner wejscie2 = new Scanner(System.in);
int druga_liczba = wejscie2.nextInt();
System.out.print("Wynik wynosi: " + dodawanie(pierwsza_liczba, druga_liczba));
}
else if (d == 2)
{
System.out.print("Podaj pierwszą liczbę: ");
Scanner wejscie = new Scanner(System.in);
int pierwsza_liczba = wejscie.nextInt();
System.out.print("Podaj drugą liczbę: ");
Scanner wejscie2 = new Scanner(System.in);
int druga_liczba = wejscie2.nextInt();
System.out.print("Wynik wynosi: " + odejmowanie(pierwsza_liczba, druga_liczba));
}
else if (d == 3)
{
System.out.print("Podaj pierwszą liczbę: ");
Scanner wejscie = new Scanner(System.in);
int pierwsza_liczba = wejscie.nextInt();
System.out.print("Podaj drugą liczbę: ");
Scanner wejscie2 = new Scanner(System.in);
int druga_liczba = wejscie2.nextInt();
System.out.print("Wynik wynosi: " + mnozenie(pierwsza_liczba, druga_liczba));
}
else if (d == 4)
{
System.out.print("Podaj pierwszą liczbę: ");
Scanner wejscie = new Scanner(System.in);
int pierwsza_liczba = wejscie.nextInt();
System.out.print("Podaj drugą liczbę: ");
Scanner wejscie2 = new Scanner(System.in);
int druga_liczba = wejscie2.nextInt();
System.out.print("Wynik wynosi: " + dzielenie(pierwsza_liczba, druga_liczba));
}
else if (d == 5)
{
System.out.print("Podaj pierwszą liczbę: ");
Scanner wejscie = new Scanner(System.in);
int pierwsza_liczba = wejscie.nextInt();
System.out.print("Podaj drugą liczbę: ");
Scanner wejscie2 = new Scanner(System.in);
int druga_liczba = wejscie2.nextInt();
System.out.print("Wynik wynosi: " + dzielenie_modulo(pierwsza_liczba, druga_liczba));
}
else if (d == 6)
{
System.out.print("Podaj liczbę: ");
Scanner wejscie = new Scanner(System.in);
int liczba_silnia = wejscie.nextInt();
System.out.print("Wynik wynosi: " + silnia(liczba_silnia));
}
else
{
System.out.print("BŁAD");
}
}
public static int dodawanie(int a, int b)
{
int wynik;
wynik = a + b;
return wynik;
}
public static int odejmowanie(int a, int b)
{
int wynik;
wynik = a - b;
return wynik;
}
public static int mnozenie(int a, int b)
{
int wynik;
wynik = a * b;
return wynik;
}
public static int dzielenie(int a, int b)
{
int wynik;
wynik = a / b;
return wynik;
}
public static int dzielenie_modulo(int a, int b)
{
int wynik;
wynik = a % b;
return wynik;
}
public static int silnia(int a)
{
int wynik = 1;
for(int i = 1; i <= a; i++)
{
wynik = i * wynik;
}
return wynik;
}
}
Moje pytania:
- jak uprosić ten kod aby nie powielać tych samych fragmentów kodu?
- o co chodzi eclipsowi z tym: Resource leak: [nazwa zmiennej] is never closed
Chodzi mi o to aby jak najbardziej wykorzystać ten sam kod wiele razy.
Na razie beż użycia klas i programowania obiektowego.
Napiszcie też swoje inne uwagi żebym już na początku nauki nie załapał złych nawyków...