Witajcie,
czy mógłbym ktoś wyjaśnić mi w słowach co dzieje się w tej metodzie? Dziękuję.
```private boolean checkAnswers() {
boolean correct = true;
for (boolean radioAnswer : answer)
correct = correct && radioAnswer;
return correct;
Kod jest napisany dość głupio, tzn. correct = correct && radioAnswer
jest mało czytelne, ponadto po pierwszej niepoprawnej odpowiedzi pętla dalej będzie zasuwać, co jest zbędne, ponieważ gdy correct
raz zmieni się na false
, nigdy nie wskrzesi się już jego wartość true
: ) Zbędna jest także zmienna correct
.
W praktyce wystarczyłoby:
for (boolean radioAnswer : answers) {
if (!radioAnswer) {
return false;
}
}
return true;
Nawiasem mówiąc, skoro iterujemy po answer
, jest to zapewne jakaś kolekcja, a zatem powinna nazywać się answers
(w liczbie mnogiej). Zmienna correct
jest, jak już zauważyłem, zbędna i do usunięcia, natomiast niezależnie od tego też była kiepsko nazwana. Powinna się nazywać np. allCorrect
, bo to jest to, co jej wartość miała tak naprawdę odzwierciedlać. radioAnswer
też nie jest fortunną nazwą.
Dobre nazewnictwo to jeden z fundamentów łatwo czytającego się kodu, a kiepskie nazwy powodują trudności w rozumieniu kodu nawet gdy jest bardzo prosty.