Wątek przeniesiony 2015-11-24 01:19 z Edukacja przez somekind.

Moja nauka JAVA - podstawy.

0

Witam, chcę się nauczyć programowania. Mój wiek to 26 lat, więc zaczynam niestety trochę późno. Studia (nieinformatyczne) mam ukończone, jednak aktualne wymagania lokalnego rynku pracy wymuszają na mnie podjęcie decyzji o przebranżowieniu. A że z tematyką komputerów jestem zaznajomiony bardzo dobrze, czas podjąć wyzwanie związane z programowaniem.

Na youtubie oglądam filmy o nauce programowania w Java. Oczywiście, powtarzam pewne przykłady, a nie które sam próbuję wykombinować z nabytej wiedzy. Chciałbym umieszczać tutaj moje wątpliwości. Dla doświadczonych programistów będzie to poziom naprawdę very easy.

Pierwsze pytanie. Chcę stworzyć program, który pyta się użytkownika o odpowiedź na pytanie. Jeżeli odpowie on daną wartość to program zwróci pewną wartość (a), a jeżeli odpowie inną to program poda to co innego (b). Potem jeszcze pokombinuje z pętlą gdy zobaczę jak wygląda konstrukcja. Niestety kod poniżej działa niepoprawnie. Przy wpisaniu obojętnie jakiego tekstu (także chłopiec) wyskakuje zawsze odpowiedź b: To będziesz kobietą.

public class apples{
  public static void main(String[] args){
      String pytanie; 
      Scanner odczyt = new Scanner(System.in);
 
      System.out.println("Jesteś chłopiec czy dziewczynka?");
      pytanie = odczyt.nextLine();
      
 
      if (pytanie == "chłopiec"){
			System.out.println("W przyszłości będziesz mężczyzną.");
		}else{
			System.out.println("W przyszłości będziesz kobietą");
		}
  }
} 
4

W Javie Stringi porównujemy przez metodę equals, == służy do porównywanie referencji, a nie wartości, ale jeszcze pewnie nie wiesz czym jest referencja, więc nie będę ci mieszał ;)
Prawidłowo:

if(pytanie.equals("chłopiec")) {
1

To się raczej nadaje do działu newbie, a nie edukacja. Twój program tak działa ponieważ operator == porównuje adresy zmiennych a nie ich zawartość. Za pomocą == porównuje się typ prymitywne. W przypadku typów obiektowych należy korzystać z equals. Poczytaj o operatorze == i metodzie equals sporo tego jest na necie. Swój program przerób tak:

    if ("chłopiec".equals(pytanie){
            System.out.println("W przyszłości będziesz mężczyzną.");
        }else{
            System.out.println("W przyszłości będziesz kobietą");
        } 
0

Dzięki panowie za odpowiedzi, działa perfekto :). Rzeczywiście, dział Newbie jest na samej górze i przeoczyłem - mam nadzieje, że moderatorzy przeniosą wątek.

Karolina zadanie idiotyczne, ale wymyślone na gorąco na podstawie innego zadania. Chodziło mi, żeby były dwie zmienne.

Zadanko postaram się na dniach ulepszyć o pętle while, tak aby można było wpisać jedynie chłopiec lub dziewczynka. Jeżeli odpowiedź będzie niepoprawna (ani chłopiec ani dziewczynka), to program będzie truł o podanie jednej z dwóch poprawnych odpowiedzi do końca swego życia.

1

Prosty przykład, by trochę namieszać w głowie początkującemu

public class Porownanie
{
    public static void main(String[] args)
    {
        String s1 = "test";
        String s2 = "test";
        String s3 = "te"+"st";
        String s4 = "te";
        s4+="st";
        System.out.println("s1 = "+s1);
        System.out.println("s2 = "+s2);
        System.out.println("s3 = "+s3);
        System.out.println("s4 = "+s4);
        System.out.println("Czy s1 == s2? "+(s1 == s2));
        System.out.println("Czy s1 == s3? "+(s1 == s3));
        System.out.println("Czy s1 == s4? "+(s1 == s4));
    }
}

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