• 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

Object Storage Arubacloud
+1 głos
284 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 (270,230 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 (270,230 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 (270,230 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 (270,230 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 (270,230 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ź 255 wizyt
0 głosów
1 odpowiedź 170 wizyt
pytanie zadane 15 lutego 2021 w C i C++ przez Kwiatek_PK Nowicjusz (180 p.)
0 głosów
2 odpowiedzi 697 wizyt

92,580 zapytań

141,433 odpowiedzi

319,665 komentarzy

61,965 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...