Wpis z mikrobloga

Mam problem z pewnym skryptem Powershell:

$liczba = Read-Host "Podaj liczbę: "
if ($liczba -lt 2){
Write-Host "Wpisana liczba nie jest liczbą pierwszą *1*"
break
}

Po wprowadzeniu np. 121, 111, wywala mi, iż warunek jest spełniony, a przecież wiadomo, że nie (111 nie jest mniejsze niż 2). Przy wprowadzeniu np. 58, skrypt działa poprawnie o.O
Dla rozjaśnienia: -lt zastępuje < (mniejsze niż).

PS. Nie zwracajcie uwagi na komunikat wypisujący, jest to wycinek kodu, aby zanalizować zaistniałą, śmieszną sytuację z liczbą np. 121.
#powershell #programowanie #algorytmy
MisiekD - Mam problem z pewnym skryptem Powershell:

$liczba = Read-Host "Podaj lic...

źródło: comment_hSx10WSVHmUjkdsElLcGwHmii6mhphMB.jpg

Pobierz
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Manderigon: @MisiekD: Nie jestem ekspertem od PowerShella, ale na 99% to właśnie sprawa porównania dwóch różnych typów - Read-Host Ci najpewniej zaczytał stringa, którego później chcesz porównać z liczbą.
Wtedy PowerShell - najpewniej - konwertuje 2 na "2", na co mogą wskazywać Twoje przykłady, bo w każdym z nich zamiana dwójki na string dawałaby właśnie takie wyniki jak napisałeś
  • Odpowiedz