2011-11-13 16 views
5

W poniższym kodzie instrukcja if ocenia się na true, ale widzę jej false.
Oczywiście istnieje logika, aby to wyjaśnić, ale nie pamiętam.
2 filmy pokazujące fenomenologię:
http://www.youtube.com/watch?v=DFcRfPErfik
http://www.youtube.com/watch?v=NEC04-kLQBEjava, dlaczego jest długa wartość w przypadku sprawdzenia poprawności błędnie

Linia "holderCompleated.textInfo.setT ..." będzie działać nawet zrobić diffHours == 1
spojrzeć na zdjęcie, diffHours = 1 i ekspresja okna pokazać false

enter image description here

letni na to pytanie może być:
(Nie obawiaj się pytać nawet o najgłupszą pytanie :))

oto obraz kiedy wprowadzić if statment

enter image description here

+0

Czy jesteś pewien, że instrukcja if zostanie podjęta * w tej iteracji *? –

+0

Mówisz więc "holderCompleated" ..." jest wykonywane, nawet jeśli debugger pokazuje, że "diffHours> 1" if false? – foowtf

+0

tak, dokładnie to, co się stało, spójrz na zdjęcie, dodaj jeszcze jeden. na zły nie można dodać krótkiego filmu zamiast zdjęć, żeby go pokazać. I tak, zrobiłem czysty projekt w Eclipse, aby wykluczyć niespójności. – Erik

Odpowiedz

3

coś dziwnego dzieje. im dodawanie Log.d (TAG, ... wewnątrz instrukcji if i debugger jest przejście nad nim.Należy również Log.d (TAG, .. tuż przed instrukcją if i że jest ok.

może clean-up nie działa i używasz jakiegoś starego kodu. Czy spróbować zrestartować Eclipse? i wtedy może usunąć i ponownie zaimportować jakieś projekty?

To również wyjaśnia, dlaczego widzisz debugger wprowadzając instrukcję if: tak nie jest! Uruchomiony kod jest po prostu niezsynchronizowany z kodem źródłowym:

+1

Tak, najprawdopodobniej program zrobił nie rekompiluj, a wykonujesz stary kod: –

+0

właśnie zrestartował komputer i zamknął otwarty projekt i wyczyścił. To samo się stało. Również instrukcja Log.d (TAG .. inside if jest wykonywana po kroku debugowania, ale nie ma wpisu w LogCat.) Myślę, że muszę wyczyścić pamięć podręczną gdzieś, ponieważ debugger ma zły dzień.Exlipse Version: Indigo Service Release 1 Build id: 20110916-0149 – Erik

+0

Próbowałeś wyczyścić swój kod (Projekt -> Wyczyść)? – deterb

Powiązane problemy