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-12 22:31
1

Faktycznie błąd pojawia się linii 19 ;) Facepalm.

Pozostało 580 znaków

2019-05-12 22:33
1
szrot napisał(a):

Faktycznie błąd pojawia się linii 19 ;) Facepalm.

<sarkazm>Kompilator czasem ma rację, warto czytać komunikaty</sarkazm>.

Pozostało 580 znaków

2019-05-13 10:18
3

Zmień jeszcze tytuł na: Niedbały Pythonowiec nie może napisać kompilującego się ifa w Javie. Pomocy.

Problemu z Javą tu ja tutaj nie widzę.


"Gdy się nie wie, co się robi, to się dzieją takie rzeczy, że się nie wie, co się dzieje"


edytowany 2x, ostatnio: nie100sowny, 2019-05-13 10:19

Pozostało 580 znaków

2019-05-13 11:19
0

Dzięki stary. Ty pewnie jak uczyłeś się jakiegoś języka to pod pewnie pisałeś oprogramowania sterujące rakietami dla NASA po dniu nauki i AI ogrywające Kasparova w szachy.

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

Pozostało 580 znaków

2019-05-13 11:28
1

@szrot Raczej chodziło o to by że z nowym językiem należy się trochę zaprzyjaźnić, spróbować rozwiązać problem samemu.
Wstawianie posta na forum po 10 minutach walki z if'em w javie nie jest najlepszym pomysłem :P

Pozostało 580 znaków

2019-05-13 11:30
0

No ale ta Java jest trochę dziwna. Oznaczanie if(1 > 0) c = 10 Działa Ale gdy w tej samej instrukcji jak użyje w if zmiennej zamiast 1 to dupa.W książce z której się uczyłem nie było o tym jeszcze wspomniane. Jak jesteś jakimś hakerem to wyjaśnij mi to proste i intuicyjne zachowanie języka Java.

edytowany 2x, ostatnio: szrot, 2019-05-13 11:34

Pozostało 580 znaków

2019-05-13 11:35
0

@szrot: jak napiszesz program zgody ze specyfikacją języka, to się skompiluje. Jest to proste i intuicyjne. Nie ma za co.

https://www.hackerrank.com/domains/java i jedziesz z zadaniami (ewentualnie inny podobny serwis) albo jedziesz ze specyfikacją na początek.

Pozostało 580 znaków

2019-05-13 11:38
0

Tylko te specyfikacje języka mogą być dziwne i nieoczywiste. No ale dobra postaram was się nie dręczyć. takimi banalnymi problemami.

Pozostało 580 znaków

2019-05-13 11:39
1

@szrot: Tu nie ma co obrażać się na cały świat.Koledzy faktycznie mają rację, chociaż nie do końca umieją się wysłowić.
Jeszcze raz:

int a = 5;
int c = 0;
if (a > 0) c = 10;

Czy chodzi dokładnie o taki kod?

Pozostało 580 znaków

2019-05-13 11:39
1
szrot napisał(a):

No ale ta Java jest trochę dziwna. Oznaczanie if(1 > 0) c = 10 Działa Ale gdy w tej samej instrukcji jak użyje w if zmiennej zamiast 1 to dupa.W książce z której się uczyłem nie było o tym jeszcze wspomniane. Jak jesteś jakimś hakerem to wyjaśnij mi to proste i intuicyjne zachowanie języka Java.

Nie programuje w javie wcale, ale:

  1. Odpaliłem Twój problem:
import java.lang.Math; // headers MUST be above the first class

// one class needs to have a main() method
public class HelloWorld
{
  // arguments are passed using the text field below this editor
  public static void main(String[] args)
  {
    int b,c;
    int a = 1;
    if(a > 0) {  c = 10; }
    System.out.print(c);
  }
}
  1. Rzuca errorem: error: variable c might not have been initialized
  2. Wklejam go w googla i klikam pierwszy link: https://stackoverflow.com/que[...]t-have-been-initialized-error
  3. Dowiaduje się że jest zabezpieczenie typu "jesli if będzie nie prawdziwy to będziesz probował wyświetlić zmienną c która nie jest zainicjalizowana!"
  4. zmieniam linikę int b, c na linijkę int b,c=0 i zaczyna działać
edytowany 1x, ostatnio: nullpt4, 2019-05-13 11:43

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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

Robot: CCBot