Instrukcja warunkowa IF

Instrukcja ta ma najczęściej postać:
if warunek
. . . instrukcje1

else
. . . instrukcje2
end

Instrukcja IF sprawdza spełnienie warunku i zależnie od jego wartości logicznej pozwala wybrać jedną z dwu możliwych dalszych sekwencji instrukcji a mianowicie instrukcje1 lub instrukcje2.

Warunek używany w instrukcji IF to wyrażenie logiczne lub wyrażenie arytmetyczne. Składniki wyrażeń logicznych opisano niżej.

Wyrażenia arytmetyczne o wartości zero są traktowane jako logiczny "fałsz" natomiast niezerowe traktowane jako "prawda"

Relacje i wyrażenia logiczne - objaśnienia

Prostymi wyrażeniami logicznymi są relacje. Relacja to dwa wyrażenia arytmetyczne połączone operatorem relacji. W Matlabie są następujące operatory relacji:
OperatorOpis
<mniejsze
< =mniejsze lub równe
>większe
> =większe lub równe
= =równe
~ =nierówne
Operatory logiczne to:
OperatorZnaczenie
&
i
|
lub
~
nie
Uwaga: w programie FreeMat zamiast tyldy [~] używa się wykrzyknika [!].
Zamiast operatorów można stosować funkcje:
FunkcjaZnaczenie
and(A,B)A i B
or(A,B)A lub B
not(A)nie A

Przykład programu (skryptu) z instrukcją IF

Rozwiązywanie równania kwadratowego jako przykład m-pliku skryptowego z zastosowaniem instrukcji IF:
% po znaku procentu można umieszczać dowolne komentarze
% Program rozwiazywania równania kwadratowego
a=input('a=');   b=input('b=');    c=input('c=');
delta = b*b-4*a*c;
if delta<0
	disp('Brak pierwiastkow rzeczywistych');
else	x1=(-b-sqrt(delta))/(2*a); x2=(-b+sqrt(delta))/(2*a);
	disp('x1='); disp(x1); disp('x2='); disp(x2);
end

Rozgałęzienia wielokrotne

Jeśli program ma wybrać nie jedną z dwu lecz jedną z trzech możliwości wtedy trzeba zastosować dwie instrukcje IF odpowiednio zagnieżdżone (albo użyć rozbudowanej formy IF której objasnienie otrzymamy po wpisaniu: "help if").
Dla wielokrotnego wyboru można użyć instrukcji switch.
Przykład użycia dwu instrukcji IF dla wybierania jednej z trzech możliwości:
. . . . . . . . . 
if delta == 0
	disp( 'pierwiastek podwójny')
else
	if delta>0
		disp('są dwa pierwiastki')
	else
		disp('brak pierwiastków rzeczywistych')
	end
end