Instrukcje warunkowe if - jak to działa?

0

Mam pytanie odnośnie pętli if else w Javie - czy jeśli pierwszy warunek jest prawdziwy to czy pętla sprawdza pozostałe warunki czy nie?
Zatem czy równoważne będzie

metodaIf() {
if (warunek1) { return; }
if (warunek2) { return; }
}
metodaIfElse() {
if (warunek1) {}
else if (warunek2) {}
}

Rozumiem to tak, że jeśli w metodaIf warunek1 będzie prawdziwy to zostanie zwrócony jakiś wynik bez sprawdzania drugiej instrukcji if. Czy to samo będzie miało miejsce w metodaIfElse? Jeśli się mylę i to działa całkiem inaczej to niech ktoś wytłumaczy z łaski swej.

dodanie znaczników <code class="java"> - fp

1
import java.util.*;
import java.lang.*;
import java.io.*;

class NanananaBatman{
	static boolean Warunek1(){
		System.out.println("warunek1!");
		return true;
	}
	static boolean Warunek2(){
		System.out.println("warunek2!");
		return true;
	}
	public static void main(String[] args){
		if(Warunek1()){}
		else if(Warunek2()){}
	}
}

stdout:

warunek1!

1

Rozumiem że ukradli ci debugger i możesz sprawdzić co się stanie? o_O
Jeśli "if" jest spełniony to nie wchodzisz do "else", to chyba dość logiczne?

1

Odpowiadając na twoje pytanie (koledzy pominęli to) - w metodaIf() masz dwie niezależne instrukcje. Jeżeli zostanie spełniony warunek1 to wykona zawartość bloku i kompilator przejdzie do drugiego warunku, który wykona analogicznie do poprzedniego (nie myl z wykonaniem identycznym).

Druga metoda metodaIfElse() będzie działać tak (to już koledzy opisali):
Jeżeli warunek1 został spełniony to wykona zawartość bloku, jeżeli natomiast warunek nie został spełniony to kompilator przechodzi do drugiej części instrukcji warunkowej i sprawdza czy został spełniony warunek - dalej już wiesz co robi.

Jeżeli nie znasz takich podstaw i dodatkowo piszesz o tym na forum (masz książki, wujka google oraz programy tj. eclipse czy netbeans) to wróć do początku i naucz się tego porządnie. Tak naprawdę instrukcje warunkowe to drugi rozdział każdej książki i kursu (pomijając wstęp :D ).

Dodatkowo napiszę, że masz 3 zastosowania tych instrukcji:

  1. If - czyli sama instrukcja warunkowa
  2. If..Else - czyli jak nie zostanie spełniony pierwszy warunek to wykona zawartość bloku Else
  3. If..Else..If - czyli jak nie zostanie spełniony pierwszy warunek to przechodzi do warunku po Else (drugiego if)

Można oczywiście wykonać coś takiego:

if(warunek1)
{
  blok1
} else if (warunek2) {
  blok2
} else {
  blok3
}

Ale o tym już w kursie lub książce.

Pozdrawiam

0

Jednak nie do końca - dlatego pytałem. Tak odnośnie wykładu Nurkiewicza na Confiturze o tym rozmyślałem - ale nie byłem/jestem pewien czy nie mijałem się z prawdą. Piszesz, że kompilator przejdzie do drugiego warunku, lecz nie przeszedł - http://pastebin.com/8Xqjgf3A

0

Dopoki nie przeczytasz jakiegos kursu, to sens tlumaczenia jest dosc maly.
hint: Wiesz do czego sluzy keyword return?

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