• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Poprawnosc wykonanego programu

0 głosów
67 wizyt
pytanie zadane 6 grudnia 2017 w Java przez Ohnne Nowicjusz (180 p.)

Witam. Znalazłem w internecie zadanie o treści jak na obrazku. Poniżej zamieściłem także mój kod źródłowy. Wszystko działa jak powinno lecz jestem początkującym w tej dziedzinie i chciałbym się dowiedzieć czy "stylistycznie" wykonałem je prawidłowo. Z góry dziękuje za odpowiedz i pozdrawiam.

public class Oclahoma {
	
	double power;
	
	public int pow(int c)
	{
		return (int) (power = Math.pow(2, c));
	} 

	public static void main(String[] args) {
		
		Scanner s = new Scanner(System.in);
		System.out.print("Range: ");
		int a = s.nextInt();
		
		Oclahoma oclahoma = new Oclahoma();
		
		for(int i=1; i<a; i++)
		{
			int ex = oclahoma.pow(i);
			
			if(ex<a)
			{
				System.out.println(ex);
			}
			else
			{
				System.out.println("Out of range!");
				break;
			}
		}
		
	}
}

 

1 odpowiedź

0 głosów
odpowiedź 7 grudnia 2017 przez adas94 Pasjonat (24,940 p.)
Zamiast tworzyć obiekt Oclahoma (bardzo dużo mówiący) zmień metodę pow na metodę statyczną. (public static int pow()...). Dzięki temu będziesz mógł używać tej metody bez tworzenia obiektu.

Druga rzecz, to ten if-else w forze. W zadaniu masz wypisać tylko te liczby które pasują, więc niepotrzebny jest ten else z breakiem, zostaw samego ifa, a kiedy warunek przestanie się zgadzać pętla sama się zakończy (wymaga to zmiany warunku również w for - albo zmianę na pętlę while - bardziej intuicyjną w tym przypadku)
komentarz 7 grudnia 2017 przez Ohnne Nowicjusz (180 p.)
public class Oclahoma {
	
	static double power;
	
	public static int pow(int c)
	{
		return (int) (power = Math.pow(2, c));
	} 

	public static void main(String[] args) {
		
		Scanner s = new Scanner(System.in);
		System.out.print("Range: ");
		int a = s.nextInt();
		int i = 0;
		while(i<a)
		{
			i++;
			int ex = Oclahoma.pow(i);
			if(ex<a)
			{
				System.out.println(ex);
			}
		}
		
	}
}

czy dobrze zrozumialem ?

komentarz 7 grudnia 2017 przez adas94 Pasjonat (24,940 p.)
Zamiast Oclahoma.pow() możesz napisać pow(), ponieważ używasz tej metody na "terenie" tej samej klasy.
komentarz 7 grudnia 2017 przez Ohnne Nowicjusz (180 p.)
Dzieki wielkie :) Kolejna cenna informacja.

Pozdrawiam

Podobne pytania

0 głosów
1 odpowiedź 55 wizyt
0 głosów
1 odpowiedź 107 wizyt
pytanie zadane 26 października 2016 w Java przez littlerunaway Obywatel (1,410 p.)
0 głosów
1 odpowiedź 57 wizyt
pytanie zadane 7 lipca 2016 w Java przez 1naswiecie Początkujący (410 p.)
Porady nie od parady
Nie wiesz jak poprawnie zredagować pytanie lub pragniesz poznać którąś z funkcji forum? Odwiedź podstronę Pomoc (FAQ) dostępną w menu pod ikoną apteczki.
Ciekawy innych porad? Odwiedź tę stronę!

45,571 zapytań

85,905 odpowiedzi

171,440 komentarzy

22,075 pasjonatów

Przeglądających: 318
Pasjonatów: 25 Gości: 293

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...