0

Why is that not working?

So, I have a problem with my javascript code and i don't know why my code isn't working. Maybe i don't see a problem. I need a help. I've tried everything, i don't know why my code isn't working :/

var oktet1 = 192;
var oktet2 = 256;
var oktet3 = 256;
var oktet4 = 256;

if(((oktet2 || oktet3 || oktet4) <= 255) || ((oktet2 || oktet3 || oktet4) >= 0)) {
    if((oktet1 >= 0) || (oktet1 <= 127)) {
        console.log("Adres ipv4: ");
        console.log(oktet1 + "." + oktet2 + "." + oktet3 + "." + oktet4);
        console.log("Klasa adresu: A");
        console.log("Maska sieci: 255.0.0.0");
    } else if((oktet1 > 127) || (oktet1 <= 191)) {
        console.log("Adres ipv4: ");
        console.log(oktet1 + "." + oktet2 + "." + oktet3 + "." + oktet4);
        console.log("Klasa adresu: B");
        console.log("Maska sieci: 255.255.0.0");
    } else if((oktet1 > 191) || (oktet1 <= 223)) {
        console.log("Adres ipv4: ");
        console.log(oktet1 + "." + oktet2 + "." + oktet3 + "." + oktet4);
        console.log("Klasa adresu: C");
        console.log("Maska sieci: 255.255.255.0");
    } else if((oktet1 > 223) || (oktet1 <= 239)) {
        console.log("Adres ipv4: ");
        console.log(oktet1 + "." + oktet2 + "." + oktet3 + "." + oktet4);
        console.log("Klasa adresu: D");
    } else if((oktet1 > 239) || (oktet1 <= 255)) {
        console.log("Adres ipv4: ");
        console.log(oktet1 + "." + oktet2 + "." + oktet3 + "." + oktet4);
        console.log("Klasa adresu: E");
    } else if(((oktet1 || oktet2 || oktet3 || oktet4) >= 255) || ((oktet1 || oktet2 || oktet3 || oktet4) <= 0)) {
        console.log("Nieprawidłowy adres. Podaj adres w zakresie od 0 do 255!");
    }
} else {
    console.log("Podaj prawidlowy adres ip w przedziale od 0 do 255");
}
rafciol
  • 1
  • 1
  • 2
    That's not how logical operators work. You have to make explicit comparisons with each value. – Pointy Feb 04 '22 at 21:56
  • `(oktet2 || oktet3 || oktet4) <= 255) || ((oktet2 || oktet3 || oktet4) >= 0)` should probably read as `(oktet2 <= 255 || oktet3 <= 255 || oktet4 <= 255) || (oktet2 >= 0|| oktet3 >= 0|| oktet4 >= 0)` However, because you used "||" between your `<=255` comparison and your `>=0` comparison, anything will match and it will likely always be true. – mykaf Feb 04 '22 at 22:10
  • 1
    the first if: `if((oktet1 >= 0) || (oktet1 <= 127))` any number is ">=0 or <= 127", you prob want && – James Feb 05 '22 at 16:54

1 Answers1

0

Your first if statement

if(((oktet2 || oktet3 || oktet4) <= 255) || ((oktet2 || oktet3 || oktet4) >= 0)) {

Replace it with

if((oktet2 <= 255 || oktet3 <= 255 || oktet4 <= 255) && ((oktet2 >= 0 || oktet3 >= 0 || oktet4 >= 0)) {

Also

else if(((oktet1 || oktet2 || oktet3 || oktet4) >= 255) || ((oktet1 || oktet2 || oktet3 || oktet4) <= 0)) { console.log("Nieprawidłowy adres. Podaj adres w zakresie od 0 do 255!"); }

Should be replaced with

else if((oktet1 >= 255 || oktet2 >= 255 || oktet3 >= 255 || oktet4 >= 255) && (oktet1 <= 0 || oktet2 <= 0 || oktet3 <= 0 || oktet4 <= 0)) { console.log("Nieprawidłowy adres. Podaj adres w zakresie od 0 do 255!"); }

JaivBhup
  • 792
  • 4
  • 7