Problem z java

Odpowiedz Nowy wątek
2019-05-12 21:14
0

Przesiadłem się na chwilę z Pythona na Javę. I mam parę dziwnych problemów.
Moja wersja Javy to 8.

Np w ogóle nie chce działać np taka prosta instrukcja
(if a > 1) c = 10;

Tylko gdy w if są zmienne to cała instrukcja przestaje w ogóle działać. gdy zamiast a jest zwykła liczba wszystko jest ok. Chodzi konkretnie o oznaczanie zmiennej c. Nie chce działać.

Podobnie jest z inną rzeczą. Nie chce mi działać skrócone AND czyli &&. Program kompletnie je ignoruje i wykonuje działanie dalej jak nigdy nic.
To są jakieś konwencje których nie znam bo się dopiero uczę czy co ?

edytowany 1x, ostatnio: szrot, 2019-05-12 21:15

Pozostało 580 znaków

2019-05-13 11:45
0

Ale to czemu jak zmienię a w if na np 1 to wszystko działa.. zmienna c jest normalnie oznaczana.

edytowany 1x, ostatnio: szrot, 2019-05-13 11:45

Pozostało 580 znaków

2019-05-13 11:47
0
szrot napisał(a):

Ale to czemu jak zmienię a w if na np 1 to wszystko działa.. zmienna c jest normalnie oznaczania.

Bo wyrażenie '' a> 0" w zależności od a może być prawdziwe lub fałszywe, a " 1>0" jest zawsze prawdziwe.
if (a > 0 ) mozemy wejsc do if'a i zainicjalizowac zmienną c lub też nie wejść i c będzie niezainicjalizowane
if ( 1>0) jest zawsze prawdziwe więc nie mamy się co martwić że c będzie nie zainicjalizowane

edytowany 3x, ostatnio: nullpt4, 2019-05-13 12:06

Pozostało 580 znaków

2019-05-13 11:51
0

Dzięki ale nie mówicie ,że to są proste banalne rzeczy ,i co niektórzy niech powstrzymają z drwinami ;)

Ale żeby instrukcja if w ogóle musiała być zainicjowana to a musi przecież uprzednio mieć już jakoś wartość .Więc i tak jest to trochę dziwne. Dobra ale mniejsza z tym.

edytowany 3x, ostatnio: szrot, 2019-05-13 11:53

Pozostało 580 znaków

2019-05-13 11:54
0
szrot napisał(a):

Dzięki ale nie mówicie ,że to są proste banalne rzeczy ,i co nie którzy niech powstrzymają z drwinami ;)

Ale żeby instrukcja if w ogóle musiała być zainicjowana to a musi przecież uprzednio mieć już jakoś wartość .Więc i tak jest to trochę dziwne. Dobra ale mniejsza z tym.

Nie musi być, cały problem jest w tym że chcesz używać zmiennej która jest inicjalizowana w if'ie którego ciało może się niewykonać.
Wydaje mi się że to jest bardzo logiczne
To tak jakbys chciał w pythonie napisać coś takiego

a,b,c
if a > 0:
   c = 0

print(c)
edytowany 2x, ostatnio: nullpt4, 2019-05-13 11:55

Pozostało 580 znaków

2019-05-13 11:57
0

W pythonie nie miałeś z tym problemu bo wszystkie zmienne muszą wskazywać na jakąś wartość(obiekt) :P
A w javie zmienne lokalne nie muszą mieć wartości, ale też nie mają żadnej default'owej.

edytowany 3x, ostatnio: nullpt4, 2019-05-13 12:04

Pozostało 580 znaków

2019-05-13 11:59
1

Nie bardzo czaję , będę musiał posiedzieć w temacie.

bardzo dobry pomysł :) powodzenia! - nullpt4 2019-05-13 11:59

Pozostało 580 znaków

2019-05-13 12:02
0

NIe karmcie trolla. Odpisałem mu 2 razy o co chodzi z tym ifem, czemu dla p > 0 nie działa, a dla 1 > 0 działa, a on dalej pyta o to samo. Szkoda mojego i waszego czasu.

Czasem mam wrażenie, że to jednak może być prawda. Na roku spotkałem taką tępą dziewuchę, co też zadawała takie pytania a jak kazałem jej przestać marnować mój czas, to nie dość, że nie podziękowała za poświęcony czas, to jeszcze strzeliłą focha i obgadywała mnie za plecami. - Lubię Naleśniki z Dżemem 2019-05-13 12:09
ja znam ludzi z 10 letnim doświadczeniem którzy mają z podstawami ... BA! czasem jak czytam posty forumowiczów z kilkuletnim stażem to zdarzy mi się złapać za głowe :P PS. oczywiście sam też popełniam błędy :) - nullpt4 2019-05-13 12:15

Pozostało 580 znaków

2019-05-13 12:10
0

O lol zaraz troll. Czyli zmienne w instrukcji if jest lokalna ? A nie globalna ? W Pythonie każda zmienna w w bloku if jest globalna. Będę musiał doczytać. Nie bądźcie takimi bucami , dopiero się uczę ;) .

edytowany 1x, ostatnio: szrot, 2019-05-13 12:11

Pozostało 580 znaków

2019-05-13 12:15
0

W Pythonie jest inaczej niż w Javie i nie jest tak jak piszesz, nie każda zmienna w bloku if jest globalna.

O zasięgu zmiennych możesz poczytać poniżej:

Pozostało 580 znaków

2019-05-13 12:21
0

@szrot: Na forum często pomagamy za darmo. Dostałeś odpowiedzi, które i tak możesz znaleźć w dokumentacji i w książkach. Jeśli wręcz wymagasz więcej, to uznajemy to za niegrzeczne. Wszyscy chętnie pomogą jeśli człowiek walczy z ciekawszym problemem i sam zrobił wszystko, co umiał, żeby go rozwiązać.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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