illegal start of expression

illegal start of expression
adrian.widzew
  • Rejestracja:około 12 lat
  • Ostatnio:ponad 10 lat
  • Postów:149
0

Witam. Próbuje łączyć trochę naukę c++ z javą. Są przecież podobne w nie których aspektach.
Ale obecnie w javie mam problem z przekazaniem tablicy do funkcji.
O to kod:
Mógłby ktoś powiedzieć co jest grane?

Kopiuj
class testowy{
public static void main(String[] args){
final int wTab=10;
int tab[]={1,4,7,5,100,150,9,34};
int i=0;
public void wyswietlTablice(int tablica[]){
for(; i<wTab; i++){
System.out.println("Element tablicy: " + (i+1));
System.out.println("Wartosc elementu: " + tablica[i]);
}
}
System.out.println("Wywolanie funkcji wyswietlTablice");
System.out.println(wyswietlTablice(int tab[]));
system("pause");
return 0;
}
}
Patryk27
Moderator
  • Rejestracja:prawie 18 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
0

Co to jest do chol... nieważne.
1.FORMATOWANIE KODU!
2.Zmienna i powinna być lokalna.
3.Nie musisz bawić się w trzymanie rozmiaru tablicy w osobnej zmiennej - w Javie istnieje od tego property-like length
4.System.out.println(wyswietlTablice(int tab[])); co to powinno według Ciebie robić:
4a) przecież wyswietlTablice nic nie zwraca.
4b) int tab[] wygląda jak deklaracja, a nie zwykłe "przesłanie" tej zmiennej do funkcji.
5.system("pause"); tym to już zniszczyłeś system...


Innymi słowy: książka do nauki Javy w łapkę i zacznij myśleć.

A tak poza tym:

Są przecież podobne w nie których aspektach.

Ehe - pod jakimi, poza paroma (można wyliczyć na palcach jednej ręki) podobieństwami składni?


edytowany 1x, ostatnio: Patryk27
adrian.widzew
  • Rejestracja:około 12 lat
  • Ostatnio:ponad 10 lat
  • Postów:149
0

System("pause") akurat nie stanowi problemu. Tak z rozmachu, z przyzwyczajenia czasem go wpisze. Więc sorki za to

P8
  • Rejestracja:prawie 12 lat
  • Ostatnio:4 dni
  • Postów:40
0
Kopiuj
public class testowy
{
	public static void main(String[] args)
	{
		int tab[]={1,4,7,5,100,150,9,34};
		
		System.out.println("Wywolanie funkcji wyswietlTablice");
		wyswietlTablice(tab);
		System.exit(0);
	}
	
	static public void wyswietlTablice(int tablica[])
	{
		for(int i=0; i<tablica.length; i++)
		{	
			System.out.println("Element tablicy: " + (i+1));
			System.out.println("Wartosc elementu: " + tablica[i]);
		}
	}	
} 
adrian.widzew
  • Rejestracja:około 12 lat
  • Ostatnio:ponad 10 lat
  • Postów:149
0

picia89 dzięki za kod, chociaż o niego nie prosiłem.
Ale jeżeli już kod został podany, to może mi ktoś wytłumaczyć dlaczego funkcja wyswietlTablice(int tablica[]) musi być statyczna? O co się rozchodzi z tym static? Bo nie łapie tego

edytowany 1x, ostatnio: adrian.widzew
Patryk27
Moderator
  • Rejestracja:prawie 18 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
0

Ponieważ jest wywoływana z innego statycznego kontekstu, czyli statycznej funkcji (metody) main.
W skrócie: metody statyczne mogą być wywoływane bez tworzenia rzeczywistego obiektu danej klasy.


edytowany 1x, ostatnio: Patryk27
adrian.widzew
  • Rejestracja:około 12 lat
  • Ostatnio:ponad 10 lat
  • Postów:149
0

Dobra. Na początek chyba spróbuje się jednak wyuczyć c++ bo java ciężko mi wchodzi. A c++ wydaje się być łatwiejszym językiem, jak dla mnie.

n0name_l
"A c++ wydaje się być łatwiejszym językiem" :DDD
P8
Assembler jest łatwiejszy. Nie ma klas, wskaźników, funkcji wirtualnych :P

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.