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

Rusz głową z Java - Magnesiki z kodem str 52

Object Storage Arubacloud
0 głosów
297 wizyt
pytanie zadane 12 lutego 2022 w Java przez dwagrosze Nowicjusz (120 p.)

Cześć, wczoraj zabrałem się za książkę Rusz Głową z Java. Na stronie 52 jest tam zadanie pt. Magnesiki z kodem. Udało mi się je rozwiązać ale mam pytanie odnośnie kodu. Kiedy zapisuje kod w ten sposób:

class abcd {
	public static void main(String[] args) {
	int x = 3;
	if (x > 2) {
		System.out.print("a");
	}
	while (x > 0) {	 
	System.out.print("-"); 
	x = x - 1;
	if (x == 1) {
			System.out.print("d");
			x = x - 1;}
	if (x == 2) {
			System.out.print("b c");
	
}
}		
}
}

Dostaje wynik a-b c-d, co jest wynikiem przeze mnie oczekiwanym. Nie rozumiem natomiast, dlaczego przy zapisie:

class abcd {
	public static void main(String[] args) {
	int x = 3;
	if (x > 2) {
		System.out.print("a");
	}
	while (x > 0) {	 
	System.out.print("-"); 
	x = x - 1;
	if (x == 2) {
			System.out.print("b c");
	if (x == 1) {
			System.out.print("d");
			x = x - 1;}
}
}		
}
}

Wynik to a-b c--. Wiem, że pytanie jest prozaiczne ale proszę o odpowiedź, bo nie daje mi ono spokoju.

komentarz 12 lutego 2022 przez VBService Ekspert (253,340 p.)
edycja 12 lutego 2022 przez VBService

Inne rozmieszczenie instrukcji warunkowych (jak już wspomniał @Whiskey_Taster), czym to skutkuje, sam już wiesz.  wink

 

BTW. Zwróć uwagę też na to co napisał @Wiciorny chociaż Ciebie to bezpośrednio nie dotyczy wink

tłumaczą że semicolon niepotrzebny, że :D to się samo formatuje ple ple, istotnie moim zdaniem więcej  dbania o takie rzeczy to w przyszłości się zwraca :)

1 odpowiedź

+3 głosów
odpowiedź 12 lutego 2022 przez Whiskey_Taster Pasjonat (15,610 p.)
Dlatego w programowaniu ważne jest, by trzymać porządek w kodzie. Robić wcięcia, trzymać porządek z klamrami, bo potem idzie się pogubić.

Zwróć uwagę, że w pierwszym przypadku druga instrukcja warunkowa jest poza pierwszą, bo instrukcja if(x == 2) zamyka się przed instrukcją if(x == 1). Z kolei w drugim wypadku tak nie jest - instrukcja if(x == 1) jest w środku instrukcji if(x == 2) [patrz, jak klamry się zamykają]. Wobec tego instrukcja ma szansę się wykonać tylko wtedy, gdy x == 2, ale x nie jest tam nigdzie modyfikowany, wobec tego instrukcja pod warunkiem x == 1 nie wykona się w tym przypadku nigdy.
1
komentarz 12 lutego 2022 przez Wiciorny Ekspert (270,110 p.)
edycja 12 lutego 2022 przez Wiciorny
a js-owcy dalej :D tłumaczą że semicolon niepotrzebny, że :D to sie samo formatuje ple ple, istotnie moim zdaniem wiecej  dbania o takie rzeczy to w przyszlosci sie zwraca :)
1
komentarz 12 lutego 2022 przez VBService Ekspert (253,340 p.)

semicolumn => semicolon  wink

 

że :D to sie samo formatuje ple ple, istotnie moim zdaniem wiecej  dbania o takie rzeczy to w przyszlosci sie zwraca :)  yes yes

1
komentarz 12 lutego 2022 przez Wiciorny Ekspert (270,110 p.)
poprawiłem :D dzięki

Podobne pytania

0 głosów
1 odpowiedź 1,150 wizyt
pytanie zadane 23 lipca 2016 w Java przez Janek19 Początkujący (290 p.)
0 głosów
1 odpowiedź 592 wizyt
pytanie zadane 19 marca 2019 w C# przez Shimeo7 Obywatel (1,910 p.)
0 głosów
1 odpowiedź 183 wizyt

92,572 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...