[SOLVED][Java] nie działa implementacja

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
salt_cushy
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 147
Rejestracja: 21 kwie 2008, 11:51
Płeć: Mężczyzna
Wersja Ubuntu: 13.04
Środowisko graficzne: LXDE
Architektura: x86

[SOLVED][Java] nie działa implementacja

Post autor: salt_cushy »

Coś tu jest pomotane:(, wygląda mi tu, jak by nie zczytywało z klawiaturt

Kod: Zaznacz cały

import java.util.Scanner;


public class Pks {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		{
			String szukanie ;


			Przystanki Warszawa = new Przystanki() ;
			Warszawa.lista[0][0] = "Katowice" ;
			Warszawa.lista[0][1] = "12:45";
			Warszawa.lista[0][2] = "Kraków" ;
			Warszawa.lista[0][3] = "13:55";


			Warszawa.lista[1][0] = "Słupsk" ;
			Warszawa.lista[1][1] = "09:00";
			Warszawa.lista[1][2] = "Kraków" ;
			Warszawa.lista[1][3] = "14:15";


			Warszawa.lista[2][0] = "Lódź" ;
			Warszawa.lista[2][1] = "22:40";
			Warszawa.lista[2][2] = "Olsztyn" ;
			Warszawa.lista[2][3] = "03:15";


		System.out.println("Podaj miasto do którego zmierza autobus : ");
		Scanner szukane = new Scanner(System.in); 
			szukanie = szukane.nextLine();
			Warszawa.Szukaj_do_kad(szukanie);
			}

			}

}

Kod: Zaznacz cały

public class Przystanki {

	public String[][] lista = new String[3][4] ;




public void Szukaj_do_kad(String miasto)
{

for(int i = 0 ; i < 3 ; i++)
{
if(lista[i][2]== miasto)
{
	System.out.println("Autobus: z " );
			
	return;
}
}
}
}
Ostatnio zmieniony 12 mar 2013, 01:27 przez salt_cushy, łącznie zmieniany 1 raz.
Awatar użytkownika
Yuri20
Sędziwy Jeż
Sędziwy Jeż
Posty: 49
Rejestracja: 31 maja 2009, 13:35
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: KDE Plasma
Architektura: x86_64

Re: [Java] nie działa implementacja

Post autor: Yuri20 »

Cóż, lepiej późno niż wcale...
Podstawowy błąd w programowaniu obiektowym: operator == w Javie nie jest stosowany do sprawdzania równości obiektów, ale do równości referencji. Innymi słowy, jeśli a==b, to oznacza to to, że zmienne a i b wskazują na ten sam obiekt. Natomiat, żeby sprawdzić czy dwa RÓŻNE obiekty mają tę samą wartość korzysta się z metody equals. Na przyszłość doradzę, że jeśli będziesz chciał sprawdzić każdy element 2-wymiarowej tablicy będziesz musiał skorzystać 2 pętli zagnieżdżonych.

Kod: Zaznacz cały

public void Szukaj_do_kad(String miasto)
{

for(int i = 0 ; i < 3 ; i++)
{

if(lista[i][2].equals(miasto))
{
   System.out.println("Autobus: z " );
         
   return;
}
}
}
}

Od niedawna programuję w Pythonie i jak na niego przeszedłem to wydawało mi się, że wcięcia zamiast klamer nie dodają dużo estetyki, a teraz wracam tutaj, żeby trochę pomóc i jednak stwierdzam, że klamry.equals(bajzel)...
salt_cushy
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 147
Rejestracja: 21 kwie 2008, 11:51
Płeć: Mężczyzna
Wersja Ubuntu: 13.04
Środowisko graficzne: LXDE
Architektura: x86

Re: [Java] nie działa implementacja

Post autor: salt_cushy »

@upDzięki za pomoc, nie przypuszczałem, że to może być, aż tak trywialny błąd. Musiałem "porzucić" jave, więc dla tego nie ruszałem implementacji.
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 15 gości