• 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

VPS Starter Arubacloud
+1 głos
272 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 (269,120 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 (269,120 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 (269,120 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 (269,120 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 (269,120 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ź 237 wizyt
0 głosów
1 odpowiedź 167 wizyt
pytanie zadane 15 lutego 2021 w C i C++ przez Kwiatek_PK Nowicjusz (180 p.)
0 głosów
2 odpowiedzi 635 wizyt

92,455 zapytań

141,263 odpowiedzi

319,100 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...