Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Przerwanie działania skryptu
xxxgabaxxx
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 1.03.2015

Ostrzeżenie: (0%)
-----


Nie mogę poradzić sobie z przerwaniem skryptu. Skrypt przypisuje nam odpowiednią klase i podsieć do adresu IP.

Problem: Jeśli, któryś z oktetów wynosi 256 powinien zostać zatrzymany skrypt i komunikat 'błędny adres IP'. Poniższy skrypt działa tylko na pierwszy oktet, na pozostałe już nie

<script>

var pierwszy=prompt('Podaj pierwszy oktet adresu. (Zakres 1-255)', 192);
var drugi=prompt('Podaj drugi oktet adresu. (Zakres 1-255)', 168);
var trzeci=prompt('Podaj trzeci oktet adresu. (Zakres 1-255)', 0);
var czwarty=prompt('Podaj czwarty oktet adresu. (Zakres 1-255)', 1);

document.write('Twój adres IP wynosi:' +pierwszy + '.' + drugi + '.' + trzeci + '.' + czwarty)

if (pierwszy >= 1 & pierwszy <= 126)
document.write('<br><b>Klasa A</b> <br> Twoja maska podsieci wynosi <b>255.0.0.0</b>');
if (pierwszy == 127)
document.write('<br><b>Pętla zwrotna</b>');
if (pierwszy > 128 & pierwszy < 192)
document.write('<br><b>Klasa B</b> <br> Twoja maska podsieci wynosi <b>255.255.0.0</b>');
if (pierwszy > 191 & pierwszy < 224)
document.write('<br><b>Klasa C</b> <br> Twoja maska podsieci wynosi <b>255.255.255.0</b>');
if (pierwszy > 223 & pierwszy < 240)
document.write('<br><b>Klasa D</b> <br> Twoja maska podsieci wynosi <b>255.255.255.255</b>');
if (pierwszy > 239 & pierwszy < 256)
document.write('<br><b>Klasa E</b>');
if (pierwszy > 255)
document.write('<br><b>Zły adres!</b>');

</script>
Go to the top of the page
+Quote Post
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


A gdzie sprawdzasz zakresy oktetów 2,3 i 4?
Go to the top of the page
+Quote Post
xxxgabaxxx
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 1.03.2015

Ostrzeżenie: (0%)
-----


Miałem

if(drugi>255 || trzeci>255 || czwarty>255)
document.write('Błedny adres ip');

Jednak nie mogę zamknąć działanie skryptu, jeśli któryś warunek jest niespełniony. Wypisuje Błędny adres ale dalej wypisuje klase :/
Go to the top of the page
+Quote Post
wolguy
post
Post #4





Grupa: Zarejestrowani
Postów: 219
Pomógł: 10
Dołączył: 9.01.2005

Ostrzeżenie: (0%)
-----


spróbuj returnem
Go to the top of the page
+Quote Post
xxxgabaxxx
post
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 1.03.2015

Ostrzeżenie: (0%)
-----


z kumplem próbowaliśmy - nieskutecznie :/
Go to the top of the page
+Quote Post
Raito
post
Post #6





Grupa: Zarejestrowani
Postów: 156
Pomógł: 19
Dołączył: 27.04.2014

Ostrzeżenie: (0%)
-----


Nie łatwiej byłoby pierwszy warunek sprawdzać, czy któraś wartość przekracza 255, a potem z elseif lecieć?

Ten post edytował Raito 18.03.2015, 19:09:59
Go to the top of the page
+Quote Post
robertpiaty
post
Post #7





Grupa: Zarejestrowani
Postów: 113
Pomógł: 18
Dołączył: 7.10.2007
Skąd: Pruszków

Ostrzeżenie: (0%)
-----


Po pierwsze zawsze używaj nawiasów {} dzięki temu nie raz unikniesz błędów logicznych. Po drugie wrzuć sobie swój kod w jakąś funckję i wewnątrz tej funkcji używaj return
  1. function checkIp(){
  2. var pierwszy=prompt('Podaj pierwszy oktet adresu. (Zakres 1-255)', 192);
  3. var drugi=prompt('Podaj drugi oktet adresu. (Zakres 1-255)', 168);
  4. var trzeci=prompt('Podaj trzeci oktet adresu. (Zakres 1-255)', 0);
  5. var czwarty=prompt('Podaj czwarty oktet adresu. (Zakres 1-255)', 1);
  6.  
  7. document.write('Twój adres IP wynosi:' +pierwszy + '.' + drugi + '.' + trzeci + '.' + czwarty)
  8.  
  9. if (pierwszy >= 1 & pierwszy <= 126){
  10. document.write('<br><b>Klasa A</b> <br> Twoja maska podsieci wynosi <b>255.0.0.0</b>');
  11. return;
  12. }
  13. }
  14.  
  15. checkIp();


-- edit
I jeszcze jedno - w if-ach zamiast & wstaw &&

Ten post edytował robertpiaty 18.03.2015, 22:57:37
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 21:40