• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

nie wiem czemu nie działa mi boolean prawidłowo w ts/js

+1 głos
705 wizyt
pytanie zadane 8 sierpnia 2022 w JavaScript przez grewwwew Użytkownik (830 p.)
let obywatelstwo:boolean = false;

let wiek:number = 35;

 

if(obywatelstwo = true && 35 <= wiek){

console.log("mozesz ubiegac sie o fotel prezydencki");

}

else if(obywatelstwo = false || wiek < 35) {

console.log("nie mozesz ubiegac sie o fotel prezydencki");

}

 

wiem że może być tylko else ale chciałem zrobić debugga
komentarz 8 sierpnia 2022 przez Wiciorny Ekspert (283,480 p.)
kod umiesc w bloczki do tego przeznaczone, pomoze to innym i bedzie bardziej czytelne.

Regulamin.

1 odpowiedź

0 głosów
odpowiedź 8 sierpnia 2022 przez Wiciorny Ekspert (283,480 p.)
wybrane 8 sierpnia 2022 przez grewwwew
 
Najlepsza

Poprawka: w aktualnej sytuacji robisz przypisanie, wcześniej zasugerowałem porównanie, ale zapomniałem, ze to nie ten jezyk i logicznie BOOLEAN, jest typem logicznym prawda/falsz 0/1.
W tej kolei rzeczy po prostu zmienna obywatelstwo sama w sobie jest logicznym typem wiec wystarczy jej uzyc tak 

if(obywatelstwo && 35 <= wiek) // = to przypisanie
else if(obywatelstwo || wiek < 35) // znowu =

zamiast " =" , porównanie poprzez podwójne ==  również bedzie niepoprawne w tym wypadku 

np.

else if(obywatelstwo == false || wiek < 35) // faktyczny blad 
if(obywatelstwo && 35 <= wiek){

console.log("mozesz ubiegac sie o fotel prezydencki");

}

else if(obywatelstwo || wiek < 35) {

console.log("nie mozesz ubiegac sie o fotel prezydencki");

}

 

komentarz 8 sierpnia 2022 przez grewwwew Użytkownik (830 p.)
a mi właśnie errora wywala przy wykorzystaniu == dlatego byłem pewien aby z niego nie korzystać "This condition will always return 'false' since the types 'false' and 'true' have no overlap."
komentarz 8 sierpnia 2022 przez Wiciorny Ekspert (283,480 p.)

tak jest bo ustawiłeś zmienna na FALSE i potem porownujesz ja do FALSE... wiec to jest zawsze prawdą nigdzie przed wykonaniem warunku nie zmieniasz wartości domyślnej która przypisałeś do zmiennej obywatelstwo 

let obywatelstwo:boolean = false;

obywatelstwo== true // jest nieprawda bo aktualnie obywatelstwo to false 

else if(obywatelstwo == false || wiek < 35) // zawsze prawda, bo nie zmieniasz nigdzie wartosci obywatelstwo

 

komentarz 8 sierpnia 2022 przez Wiciorny Ekspert (283,480 p.)

sory moj blad, popieprzyl mi sie jezyk... generaline nie musisz przyrownywac zmienne w IF dlaczego? 
bo naturanie warunek sprawdza poprawnosc logiczna boolean stad jesli cos jest false to traktowane bedzie jako false, w przeciwnym wypadku jako true wiec wystarczy zapisac

 

if(obywatelstwo && 35 <= wiek){
 
console.log("mozesz ubiegac sie o fotel prezydencki");
 
}
 
else if(obywatelstwo  || wiek < 35) {
 
console.log("nie mozesz ubiegac sie o fotel prezydencki");
 
}

bo obywatewlstwo samo w sobie jest boolean czyli wartoscia logiczna prawdy lub falszu 0/1

komentarz 8 sierpnia 2022 przez grewwwew Użytkownik (830 p.)
czyli w ogóle nie powinno być obywatelstwa podanego do porównania bo jeśli będę chciał porównać i zmienna będzie true to wynik i tak będzie true?
komentarz 8 sierpnia 2022 przez Wiciorny Ekspert (283,480 p.)
alez totalnie nie w te strone poszedles, powinna ale zauwaz ze warunek IF - jest warunkiem logicznym, a twoja zmienna juz jest logiczna wiec samo napisanie if(organizacja) bedzie brane pod uwage gdyz jesli organizacja jest true- to warunek jest spelniony, jesli nie jest to jest false wiec tez nie jest spelniony, zatem wystarczy wykorzystac nazwe zmiennej i sama jej wartosc, nie musisz niczego porownywac do niej
1
komentarz 8 sierpnia 2022 przez grewwwew Użytkownik (830 p.)
a czyli tak to dziękuję

Podobne pytania

0 głosów
1 odpowiedź 612 wizyt
0 głosów
1 odpowiedź 337 wizyt
pytanie zadane 15 lutego 2021 w C i C++ przez Kwiatek_PK Nowicjusz (180 p.)
0 głosów
2 odpowiedzi 1,308 wizyt

93,772 zapytań

142,730 odpowiedzi

323,382 komentarzy

63,368 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...