Nested If
කොන්දේසියකට පසුව කොන්දේසියක් වශයෙන් කොන්දේසි සමූහයක් යෙදෙන අවස්ථා Nested If ලෙස හඳුන්වනු ලබයි.
උදාහරණ 1 : පාසලක ළමුන් ඇතුළත්වීමේ දී අංකය අනුව එක් එක් ළමයාට අදාළ නිවාසය නම් කරනු ලබයි. ඇතුළත්වීමේ අංකය තුනෙන් බෙදූ පසු ඉතිරිය 2 ක් නම් ලිහිණි නිවාසය ලෙස ද , ඉතිරිය 1 ක් නම් මයුර නිවාසය ලෙස ද , එසේ නොමැතිනම් තිසර නිවාසය ලෙස ද ප්රතිදානය කරන්න.
Program Houses(input,output);
Var indexNo,remainder:integer;
Begin
writeln('Enter the index Number');
read(indexNo);
remainder:=indexNo mod 3;
if remainder=2 then
writeln('Lihini')
else
if remainder=1 then
writeln('Mayura')
else
writeln('Thisara');
End.
උදාහරණ 2 : a = 100 හා b = 200 නම් "Value of a is 100 and value of b is 200" ලෙස ප්රතිදානය කරන්න.
program nested_ifelseChecking;
var a, b : integer;
begin
a := 100;
b:= 200;
if (a = 100) then
if ( b = 200 ) then
writeln('Value of a is 100 and value of b is 200' );
writeln('a = 100 and b = 200' );
end.
මෙහිදී එක් කොන්දේසියක් තෘප්ත වුවහොත් පමණක් ඊලඟ කොන්දේසිය වෙත යයි. a = 100 යන්න තෘප්ත වන බැවින් b = 200 යන කොන්දේසිය වෙත ගොස් එය ද තෘප්ත වන නිසා "Value of a is 100 and value of b is 200" ප්රතිදානය කරයි.
නමුත් මෙම වැඩසටහන පහත පරිදි වෙනස් වුවහොත් ලැබෙන ප්රතිදානය වෙනස් වේ.
program nested_ifelseChecking;
var a, b : integer;
begin
a := 100;
b:= 201;
if (a = 100) then
if ( b = 200 ) then
writeln('Value of a is 100 and value of b is 200' );
writeln('a = 100 and b = 200' );
end.
මෙහි ප්රතිදානය ලෙස ලැබෙන්නේ "a = 100 and b = 200" වේ. ඊට හේතුව වන්නේ a = 100 කොන්දේසිය තෘප්ත වුව ද b = 200 කොන්දේසිය තෘප්ත නොවීමයි.
Case Statement
වරණය සහිත ක්රමලේඛන ලිවීමේ දී කොන්දේසි සමූහයක් නැවත නැවත යෙදීම සිදු නොකර , Case භාවිතා කර කොන්දේසිසමූහය දැක්වීම Case Statement ලෙස හදුන්වනුලබයි.
උදාහරණ : පාසලක ළමුන් ඇතුළත්වීමේ දී අංකය අනුව එක් එක් ළමයාට අදාළ නිවාසය නම් කරනු ලබයි. ඇතුළත්වීමේ අංකය තුනෙන් බෙදූ පසු ඉතිරිය 2 ක් නම් ලිහිණි නිවාසය ලෙස ද , ඉතිරිය 1 ක් නම් මයුර නිවාසය ලෙස ද , එසේ නොමැතිනම් තිසර නිවාසය ලෙස ද ප්රතිදානය කරන්න.
Program Houses2(input,output);
Var IdNo,Remainder:integer;
Begin
writeln('enter the number');
Read(IdNo);
Remainder:=IdNo mod 3;
Case Remainder of
2:writeln('Lihini');
1:writeln('Mayura');
ELSE
writeln('Thisara');
end;
END.
නිඩීත පාලන ව්යූහ (Nestead Control Structure)
වරණයක් අතර පුණර්කරණය යෙදීම හෝ පුණර්කරණය අතර වරණය යෙදීම නිඩීත පාලන ව්යූහ (Nestead Control Structure) ලෙස හඳුන්වයි.
වරණය තුළ පුනර්කරණය යෙදීම.
උදාහරණ : පරිශීලකයාගේ තේරීම අනුව , තේරීම 1 නම් , "A" සිට "Z" දක්වා ද (ආරෝහණ පිළිවෙළට), තේරීම 2 නම් , "Z" සිට "A" දක්වා ද (අවරෝහණ පිළිවෙළට), එසේ නොමෙතිව වෙනත් ඉලක්කමක් ආදානය කලහොත් "" ලෙස ද ප්රතිදානය කරන්න.
program loopInSelection (input,output);
var select:integer;
order:char;
begin
writeln('Enter 1 or 2');
read(select);
if select=1 then
begin
writeln('Asending order');
for order:='A' to 'Z' do
writeln(order);
end;
if select=2 then
begin
writeln('Desding order');
for order:='Z' downto 'A' do
writeln(order);
end
else
writeln('Invalid Number');
end.
පුනර්කරණය තුළ වරණය යෙදීම.
උදාහරණ : 10 සිට 25 තෙක් සංඛ්යා ලබාගෙන , ඔත්තේ සංඛ්යා "ඔත්තේ" ලෙස ද , ඉරට්ටේ සංඛ්යා "ඉරට්ටේ" ලෙස ද නම් කරන්න.
program selectionInLoop(input,output);
var No,Remainder:integer;
begin
For No:=10 to 25 do
begin
Remainder := No MOD 2;
if Remainder = 1 then
writeln(No,' is an odd number')
else
writeln(No,' is an even number');
end;
end.