webmaster webmastering webdesign

Jesteś tutaj: webmade.org >> porady >> javascript

Skrócony if

autor: Patryk 'yarpo' Jar, ostatnia modyfikacja: 2007-05-05

szukaj: if if skrócony if skrócony if JS JS JavaScript JavaScript

Na pewno nie raz spotkałeś się – ba pewnie nawet używałeś – instrukcji warunkowej if. Jeśli nie, to polecam lekturę Instrukcje warunkowe. Co prawda jest to kurs PHP, jednak konstrukcja instrukcji warunkowej if w większości języków jest taka sama. W przypadku PHP i JS jest identyczna.

Normalny if wygląda tak:

if (warunek) {
	// wykonaj
} else {
	// wykonaj co innego
}

Jeśli to, co ma zostać wykonane ma jedynie jedną linię kodu, np:

if (i>0) {
	i--;
} else {
 	i++;
}

Można to zapisać krócej:

if (i>0) i--;
else i++;

Jeśli opuścimy klamry, to zostanie wykonany kod do pierwszego średnika, jako kod warunkowy. Reszta zostanie wykonana liniowo. Czyli jeśli masz:

if (i>0) {
	i--;
	inna_zmienna = 4;
} else {
 	i++;
	inna_zmienna = 7;
}

I opuścisz klamry, to w przypadku, gdy i> 0 zostanie wykonane:

Tak więc pamiętaj, aby odpowiednio unikać klamer.

Jednak nie o tym miała być ta porada :) Miałem zamiar pokazać, rzeczywistą możliwość skrócenia kodu, oto i ona:

(i>0) ? i-- : i++;

Jest równoznaczne pierwszemu listingowi. W takim zapisie nie można używać więcej niż jednej instrukcji. Czyli nie można napisać i--; inna_zmienna=4;

Więc po co to?

Bardzo ułatwia to życie, i kod, kiedy masz krótką funkcję, np. min:

function min(a, b) {
	if (a>=b) {
		return b;
	} else {
		return a;
	}
}

Jaka ta funkcja dluuuuga! Fuj! A można ładnie i szybko:

function min(a, b) {
	return (a>=b) ? b : a;
}

Przekonałem, czy jeszcze nie? To może coś takiego:

a = (user=="Kasia") ? "Witaj Kasiu" : "Nie znam Cię!";
alert(a);

lub nawet krótsze:

alert((user=="Kasia") ? "Witaj Kasiu" : "Nie znam Cię!");

Jest wiele możliwości wykorzystania tego skrótu. Polecam po eksperymentować :)

Patryk 'yarpo' Jar

Osoby czytające tę publikację przeglądały również:

Chcesz zostać programistą?

Poznaj 6 kroków do efektywnej
nauki programowania!

 

valid XHTML
valid CSS
© 2004-2008 copyright by webmade.org