Prośba o sprawdzenie kodu

0

Witam,
Od razu piszę, że dopiero niedawno rozpocząłem naukę programowania (więc prosiłbym o zachowanie powagi i nie śmianie się ;)). Chciałem napisać program, który sprawdza czy dany trójkąt o bokach a, b, c(wartości wprowadzone przez użytkownika) jest trójkątem prostokątnym. Napisałem kod, który się kompiluje, ale jego metoda nie działa i nie bardzo wiem jaki jest tego powód. Z góry dziękuje za odp.

class trjCheck {
	
	int a, b, c;
	
	trjCheck(int bok1, int bok2, int bok3) {
		bok1 = a;
		bok2 = b;
		bok3 = c;
	}
	/* Chciałbym aby metoda ta sprawdziła, który z wprowadzonych przez użytkownika boków jest najdłuższy a następnie wykonała odpowiednią instrukcje */
	void spr() {
		
		if(a>b & a>c) { 
			a = a*a;
			if(a==c*c+b*b) {
				System.out.println("Trójkąt jest prostokątny");
			} else {
				System.out.println("Trójkąt nie jest prostokątny");
			}
		}
		
		else if(b>a & b>c) {
			b = b*b;
			if(b==c*c+a*a) {
				System.out.println("Trójkąt jest prostokątny");
			} else {
				System.out.println("Trójkąt nie jest prostokątny");
			}
		}
			
			
		else if(c>a & c>b)  {
			c = c*c;
			if(c==a*a+b*b) {
				System.out.println("Trójkąt jest prostokątny");
			} else {
				System.out.println("Trójkąt nie jest prostokątny");
			}
		}	
	}
} 

A oto klasa testowe:

 import java.util.Scanner;

class trjCheckTester {
	public static void main(String[] args) {
		
		Scanner choice1 = new Scanner(System.in);
		Scanner choice2 = new Scanner(System.in);
		Scanner choice3 = new Scanner(System.in);
		
		int bokA, bokB, bokC;
		
		System.out.print("\n Wprowadz wartosc boku a: ");
		bokA = choice1.nextInt();
		System.out.print("\n Wprowadz wartosc boku b: ");
		bokB = choice2.nextInt();
		System.out.print("\n Wprowadz wartosc boku c: ");
		bokC = choice3.nextInt();
		
		trjCheck user = new trjCheck(bokA, bokB, bokC);
		
		user.spr();
	}
	
}
1

W konstruktorze trjCheck (swoją drogą zdecyduj się, czy nazywasz po polsku, czy po angielsku ;)) przypisujesz zmienne klasy do argumentów konstruktora, a przecież chcesz w konstruktorze przypisać wartości do zmiennych klasy - na odwrót.

0

Masz racje. Dziękuje Ci bardzo :)

0

Polecam nauczyć się obsługiwać debugger :)

0

Po co trzy razy uzywasz Scanner jak wystarczyło by raz np Scanner in = new Scanner (System.in)

0

Metoda spr ma beznadziejną nazwę, poza tym powinna zwracać bool, a coś wyświetlać powinieneś dopiero w mainie.
Nie mówiąc oczywiście o tym, że tworzenie do tego celu całej "normalnej" klasy mija się kompletnie z celem, statyczna metoda byłaby w 100% wystarczająca.

Btw, długość boku, a nie wartość boku...

1 użytkowników online, w tym zalogowanych: 0, gości: 1