←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] wychodzenie returnem ze środk...

Locked

  • +
  • -
Ossal's Photo Ossal 23.12.2014

Przykładowa funkcja:
public WyszyscyZywi(){
	for(new i;i<33;i++){
		if(is_user_connected(i) && !is_user_alive(i))
			return false;
	}
	return true;
}
Czy coś takiego jest nie poprawne? Nie pytam czy działa, bo do tego chyba nikt wątpliwości nie ma. Chodzi o to, że spotkałem się ze stwierdzeniem, iż wychodzenie z funkcji returnem wewnątrz pętli jest złe, nie wiem dlaczego miało by być złe, ale może ktoś wytłumaczy :P
Tyczyło się to c/c++, ale jedno jest pochodne od drugiego, więc pytam :D
Podsumowując: Czy można wychodzić z funkcji returnem w pętli, czy to jest to jakieś złe i biją za to mocno?
Z góry dzięki za odp :)
Quote

  • +
  • -
DarkGL's Photo DarkGL 23.12.2014

Czy można wychodzić z funkcji returnem w pętli, czy to jest to jakieś złe i biją za to mocno?

 

Można , nie jest złe , nie nie bije jak ktoś tego czepia to naprawdę jest to już przesada

Quote

  • +
  • -
Ossal's Photo Ossal 23.12.2014

dotyczy też c?
Quote

  • +
  • -
grankee's Photo grankee 23.12.2014

Na logikę to jest to najrozsądniejsze i optymalne rozwiązanie, nie ma bowiem potrzeby kontynuowania pętli ani nawet funkcji jeśli znajdziesz chociaż jedną martwą osobę.

public WyszyscyZywi(){
	for(new i;i<33;i++){
		if(is_user_connected(i)){
                     if(!is_user_alive(i))
			return false;
                }
	}
	return true;
}

Może to jest odrobinkę lepsze, bo nie ma sensu sprawdzać is_user_alive jeśli is_user_connected zwróci false

Quote

  • +
  • -
Droso's Photo Droso 23.12.2014

Na logikę to jest to najrozsądniejsze i optymalne rozwiązanie, nie ma bowiem potrzeby kontynuowania pętli ani nawet funkcji jeśli znajdziesz chociaż jedną martwą osobę.

public WyszyscyZywi(){
	for(new i;i<33;i++){
		if(is_user_connected(i)){
                     if(!is_user_alive(i))
			return false;
                }
	}
	return true;
}

Może to jest odrobinkę lepsze, bo nie ma sensu sprawdzać is_user_alive jeśli is_user_connected zwróci false

ale to taki sam kod, jak jest warunek1 && warunek2 jeden sie nie spełni to już nie sprawdza dalej na moją logikę ;P

 

+

 

Niby dlaczego wychodzenie returnem w środku jest złe jak najczęściej jest to najbardziej optymalne ;P

Quote

  • +
  • -
grankee's Photo grankee 24.12.2014


ale to taki sam kod, jak jest warunek1 && warunek2 jeden sie nie spełni to już nie sprawdza dalej na moją logikę
:facepalm2:

Mogę się tłumaczyć gorączką? Wstyd mi ;>

Quote

  • +
  • -
Ossal's Photo Ossal 24.12.2014

Dowiedziałem się co chciałem, a właściwie upewniłem się tylko, dziękuję i wesołych świąt :) /Close

Quote

bicek's Photo bicek 24.12.2014

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Quote
Locked