Wednesday, July 25, 2012

4. C හතරවන පාඩම - If statement (එහෙම උනොත් මෙහෙම වෙන්න)


“එහෙම වුනොත් මෙහෙම කරන්න. නැතිනම් මෙහෙම කරන්න...“

       අපි බාවිතාකරන භාෂාවෙන් යමක් කරන්නට උපදෙස් දෙන ආකාරය මේ ආකාර නේද. ඉතින් පරිගණක ක්‍රමලේඛනයේදීද පරිගණකය වෙත යමක් කිරීමේදි උපදෙස් දීම සදහා භාවිතාකරන කොන්දේසිගත (conditional) විදික්‍රමය ලෙස If else statement දැක්විය හැකියි. මෙවැනි conditional statement රහිත වුවොත් ක්‍රමලේඛය එකම මගක් ඔස්සේ හැමවිටම ධාවනය වේ. එමගින් අපට අපේක්ෂිත ප්‍රථිපල ලබාගැනීම උගහටය.  මෙම පාඩමෙන් If else statement හි භාවිතය ගැන සැකෙවින් හදාරමු.

      යම්කිසි තත්වයක් තෘප්ත කිරීම/නොකිරීම හෙවත් true or false ලෙස ලබෙන ප්‍රථිපලය අනුව මින් ඉදිරියට ක්‍රයාකරන්න යැයි උපදෙස් දීම මෙහිදි සිදුවෙ. එසේ නම් condition එක පරීක්ෂාකරගත හැකි ආකාර මොනවාදැයි මුලින්ම සොයා බලමු.

>     greater than  (විශාලය)           
<     less than     (කුඩාය)            
>=    greater than or equal (විශාල හෝ සමානය)    
<=    less than or equal  (කුඩා හෝ සමානය)      
==    equal to (සමානය)                 
!=    not equal to (අසමානය)            

ඉහත දක්වා ඇති ආකාර 6 භාවිතයෙන් අපට කන්ඩිෂන් එක පරීක්ෂාකරගත හැක. එසේ පරීක්ෂාකර ගැනීමෙන් අපට ලැබෙන්නෙ බූලියානු පිලිතුරකි. එනම් අදාල condition එක තෘප්ත වේ නම් true ලෙසත් එසේ නොවේ නම් false ලෙසත් ය.


මූලික if පදගැළපුම (basic if statement syntax)


if ( condition )
    Execute this line of code



මෙහි condition එක true වූවහොත් අදාල coding line එක execute කිරීම ඇරඹේ. false වුවහොත් එම coding line එක පසෙකලා (skip කොට) ඉන් එහාට වැඩසටහන execute වේ.

මෙම ක්‍රියාවලිය උදාහරණයක් මගින් පැහැදිලි කරගනිමු.

if ( 5 < 10 )  
  printf( "Five is less than ten" );

ඉහත උදාහරණයට අනුව condition එක වන්නෙ 5<10 යන්නය. එය සත්‍ය වේ. එම නිසා ඒ තුල ඇති printf statement එක execute වී තිරය මත “Five is less than ten“ ලෙස තිරයේ output එක දැකගත හැක. 

එලෙසම, තනි line එකක් වෙනුවට code set එකක් execute කිරීමට අවශ්‍ය නම් පහත ලෙස syntax එක වෙනස්විය යුතුය.

if ( TRUE ) {
  printf ("line of code 1");
  printf ("line of code 2");
  printf ("Braces indicate the more than 1 statement should execute"); 
}


මෙහි සඟල වරහන් “{ }“ මගින් if statement එක සත්‍ය වන විට execute විය යුතු code block එක හදුන්වා දෙයි. 

Else (එසේ නොවේ නම්) 

ඉහතදි කතාකලේ condition එක true වන අවසාථාවේදි execute විය යුතු ආකාරය ගැනයි. යම් හෙයකින් condition එක false වන විටදීත් වෙනත් විශේෂිත දෙයක් සිදුකරගැනීමට අවශ්‍ය නම් එවැනි අවස්ථාවලදි අපට else කොටස යොදාගත හැක.
if ( TRUE ) {
   Execute these statements if TRUE 
}
else {
   Execute these statements if FALSE 
}
Else if (එසේ නොවේ නම් මෙසේ වේද) 

if ( condition 1 ) 
  {                  
     Execute these statements if condition 1 TRUE    
  }
  else if ( condition 2 ) 
  {            
     Execute these statements if condition 1 FALSE and TRUE        
  }
  else 
  {
     Execute these statements if condition 1 and 2 both are false     
  }

එක අවස්ථාවකට වඩා condition එක පරීක්ෂාකිරීමට අවශ්‍ය විට මෙම multiple if statement එක යොදාගත හැකිය. එමගින් මුලින්ම if කොටසේ ඇති condition එක පරීක්ෂා කරයි (උදා: age<100) එය true නම් ඒ යටතේ ඇති statement එක execute වන අතර ඉතිරි else if හා else කොටස් අතහැර දමා වැඩසටහන ඉදිරියට යයි. if කොටසේ condition එක false වුවහොත් ඊලඟට ඇති else if කොටසේ condition එක පරීක්ෂා කරයි. ඒ ආකාරයට අපට අවශ්‍ය තරම් if statement එක දිගු කරගනිමින් භාවිතා කල හැකිය.

ඉහත උගත් දැ සම්පූර්ණ ක්‍රමලේඛ උදාහරණයක් මගින් දැක්වූවහොත් ඒ මෙසේය. 


#include<stdio.h>
void main(){
 int age = 0;
 printf ("How old are you?");
 scanf ("%d", &age);
 
 if (age<16) {
  printf (" you are yung ");
 } else if ( age < 30) {
  printf (" you are teenager ");
 } else {
  printf (" you are a growned person ");
 }
}

7 comments:

  1. හොඳට විස්තර කරලා තියෙනවා මචං.. මෙලෝ දෙයක් කලින් දැනන් ඉඳපු නැති මට සෑහෙන දුරට තේරෙනවා.. ඊළඟ පාඩම ඉක්මනට එනකන් බලන් ඉන්නවා..
    බොහොම ස්තුතියි...


    ReplyDelete
  2. ස්තූතියි ..

    ඉවර නෑ ඉවර නෑ... තව තියනවා :D

    ReplyDelete
  3. #include
    void main()
    {
    system("color a");
    printf("වටිනා පාඩම් මාලාවක් දිගටම දාන්න \n");
    }

    ReplyDelete
  4. #include
    void main()
    {
    system("color a");
    printf("වටිනා පාඩම් මාලාවක් දිගටම දාන්න \n");
    }

    ReplyDelete
  5. #include
    int main ()
    {
    int mark = 0;
    printf("my result sheet\n");
    scanf("%d",mark);
    if (mark > 50){
    printf("grade=pass\n");
    } else if (mark < 50){
    printf("grade=fail\n");
    }
    }

    ReplyDelete
  6. පොඩි අවුලක් තියෙනවා.හොයා ගන්න පුළුවන්ද සහෝ

    ReplyDelete