if, if...else and
Nested if...else
Conditional statement என்றால் என்ன?
நிஜவாழ்வில் முடிவெடுத்து சில காரியங்களை நாம் செய்வது போல, நமது program மிலும் முடிவுக்கு தக்கமாதிரி சில காரியங்களை செயல்படுத்த உதவுபவைதான் conditional statements. இனி Conditional
statement ல் முதன்மையானதாக இருக்கும் if பற்றி இங்கு பார்ப்போம்.
if statement
if condition, இதை நாம் அன்றாடம் உபயோகித்து வருகிறோம். எந்த சூழ்நிலையில் உபயோகிக்கிறோம் என்பதை உணராததால்தான் நமது program மில் எங்கே பயன்படுத்துவது என்ற குழப்பம் ஏற்படுகிறது. அதை நிவர்த்தி செய்யும்வண்ணம் if பயன்படும் சூழ்நிலைகளை இங்கே பார்ப்போம்.
if statement என்று சொல்லலாம். இதனுடைய syntax
if statement என்று சொல்லலாம். இதனுடைய syntax
if (testExpression)
{
// statements
}
if..then
இதை simple if else statement என்று சொல்லலாம்.
இங்கே Boolean expression ஆனது true என்றோ அல்லது false என்றோ மாறும். அதாவது expression ஐ evaluate செய்தால் true / false என்ற விடை கிடைக்கும். Expression true ஆக மாறினால் then க்கு அடுத்துள்ள statement execute ஆகி அதற்கடுத்த பகுதிக்கு சென்றுவிடும். Expression false ஆக மாறினால் if ஒன்றும் செய்யாமல் அடுத்த பகுதிக்கு சென்றுவிடும்.
கொஞ்சம் விளக்கமா சொல்லட்டுமா? நம் கிராமத்துல சின்ன கிளினிக் வைத்துக்கொண்டிருக்கும் ஒரு டாக்டரிடம் நீங்கள் கம்பவுண்டராக வேலை பார்க்கிறீர்கள் என்று வைத்துக்கொள்வோம். உங்களுக்கு if condition எப்படி எல்லாம் உதவுதுன்னு இங்கே அலசுவோம். வெறுமனே படிப்பதை விட எதற்கு பயன்படுதுன்னு தெரிஞ்சா தெளிவா விளங்கும்ல...
கம்பவுண்டருடைய வேலை நோயாளி வந்தால் டாக்டர் அறைக்கு அவரை அனுப்பிவைக்கவேண்டும். என்ன கம்பவுண்டர் ரெடியா? சரி இங்கே if statement எப்படி உதவுதுன்னு யோசிக்கிறீங்களா? ரொம்ப சிம்பிள்... நீங்கள் கிளினிக்கில் உட்கார்ந்திருக்கிறீர்கள். நோயாளி ஒருத்தர் வருகிறார். நோயாளி வந்தா உள்ளே அனுப்பிடுவீங்களா? ஆமாம் என்று நீ்ங்கள் பதில் சொன்னால், நீங்கள் இன்னும் யதார்த்தத்தை உணரவில்லை என்று அர்த்தம். அதாவது கம்பவுண்டர் எப்படி வேலை செய்வார் என்பதை இன்னும் நீங்கள் உணரவில்லை. கொஞ்சம் யோசியுங்கள்... தெரியலியா? சரி உங்க வழியிலேயே வர்ரேன்... நோயாளியை உள்ளே அனுப்பறீங்க அவரும் உள்ளே போயிட்டு போன வேகத்துல வெளியே வருகிறார் ஏங்க இன்னும் டாக்டர் வரலீங்களான்னு கேட்கிறார. என்ன கம்பவுண்டரே இப்போ புரிஞ்சிச்சா? என்ன பிரச்சினைன்னு. என்னோட கேள்விக்கு இப்போ விடை சொல்லுங்க பார்ப்போம்.
டாக்டர் இருந்தாத்தான் உள்ளே அனுப்பனும். கரெக்ட்! இப்போத்தான் யதார்த்தமா பேசறீங்க. இப்படி யதார்த்தத்த உணர்ந்தாதான் உங்களால லாஜிக்க டெவலப் செய்யமுடியும். Program எழுத முடியும். என்ன சின்னபுள்ளத்தனமா கேள்விகேட்கறேன்னு நீங்க நினைச்சா லாஜிக்க டெவலப் செய்ய முடியாது.உள்ளே நோயாளியை அனுப்பனும்னா முதலில் டாக்டர் இருக்கனும். இது தான் நீங்கள் பயன்படுத்துற if statement. பிறகென்ன? இதை எப்படி program மா மாத்தறது? எதற்கு இதை program ஆக மாத்தனும்? அதற்கென்ன அவசியம் வந்துச்சுன்னு கேட்கறீங்களா? இப்படி நம்மைச்சுற்றி அன்றாடம் நடக்குற விசயங்கள நோட்டமிட்டு அதை பேப்பருல யதார்த்தமா எழுதினாலேயே தானாக லாஜிக் டெவலப் ஆகிவிடும். அப்புறம் அந்த லாஜிக்குக்கு தகுந்த programming command பொருத்திப் பார்த்தால் program ரெடியாகிவிடும். இப்படி நாம யதார்த்தமாக எழுத ஆரம்பிக்கும் லாஜிக் போகப்போக எப்படி டெவலப் ஆகுதுன்னு பார்க்கலாம்.
Stage 1 if டாக்டர் உள்ளே இருந்தால் then நோயாளியை உள்ளே அனுமதிக்கவும்
டாக்டர் இருந்தாத்தான் உள்ளே அனுப்பனும். கரெக்ட்! இப்போத்தான் யதார்த்தமா பேசறீங்க. இப்படி யதார்த்தத்த உணர்ந்தாதான் உங்களால லாஜிக்க டெவலப் செய்யமுடியும். Program எழுத முடியும். என்ன சின்னபுள்ளத்தனமா கேள்விகேட்கறேன்னு நீங்க நினைச்சா லாஜிக்க டெவலப் செய்ய முடியாது.உள்ளே நோயாளியை அனுப்பனும்னா முதலில் டாக்டர் இருக்கனும். இது தான் நீங்கள் பயன்படுத்துற if statement. பிறகென்ன? இதை எப்படி program மா மாத்தறது? எதற்கு இதை program ஆக மாத்தனும்? அதற்கென்ன அவசியம் வந்துச்சுன்னு கேட்கறீங்களா? இப்படி நம்மைச்சுற்றி அன்றாடம் நடக்குற விசயங்கள நோட்டமிட்டு அதை பேப்பருல யதார்த்தமா எழுதினாலேயே தானாக லாஜிக் டெவலப் ஆகிவிடும். அப்புறம் அந்த லாஜிக்குக்கு தகுந்த programming command பொருத்திப் பார்த்தால் program ரெடியாகிவிடும். இப்படி நாம யதார்த்தமாக எழுத ஆரம்பிக்கும் லாஜிக் போகப்போக எப்படி டெவலப் ஆகுதுன்னு பார்க்கலாம்.
Stage 1 if டாக்டர் உள்ளே இருந்தால் then நோயாளியை உள்ளே அனுமதிக்கவும்
இதுதான் if statement.
இங்கே டாக்டர் உள்ளே இருந்தால் என்பது Boolean expression ஆகும். இதற்கு இருக்கிறார்
(true) அல்லது இல்லை (false) என்று ஏதாவது ஒரு பதில்தான் உங்களால் தரமுடியும். அந்த பதிலை போட்டு if எப்படி மாறுகிறது என்று பாருங்கள்
.
டாக்டர் உள்ளே இருக்கிறார் என்றால் என்னாகும்? டாக்டர் உள்ளே இருக்கிறார் என்கிற expression true (இருக்கிறார்) என்று மாறும். if true then நோயாளியை உள்ளே அனுமதிக்கவும்
இங்கே expression true ஆக மாறிவிட்டது அதனால் statement execute செய்யப்படுகிறது. எனவே நோயாளியை நீங்கள் உள்ளே அனுமதிக்கிறீர்கள்.
ஒருவேளை டாக்டர் உள்ளே இல்லை என்றால் என்னாகும்?
இங்கே expression false ஆக மாறிவிட்டது அதனால் statement execute செய்யப்படாது. எனவே நோயாளியை நீங்கள் உள்ளே அனுமதிக்க மாட்டீர்கள். நோயாளியிடம் ஒன்றும் சொல்லாமல் நீங்கள் அமர்ந்திருக்கிறீர்கள். நோயாளி டென்ஷன் ஆகிறார். ஏன்யா? டாக்டர் இருக்காரா இல்லையா? அப்படின்னு கேட்கிறார். இல்லைன்னு சொல்றீங்க. அப்ப வாயில என்ன கொழுக்கட்டயா வச்சிருக்க, இல்லைன்னு சொல்லவேண்டியதுதானேன்னு சொல்லிட்டு போகிறார். டாக்டர் இல்லாவிட்டால் என்ன செய்யவேண்டும் என்ற logic நம்ம கம்பவுண்டரிடம் இல்லை. இப்பொழுது அவரை யோசிக்க செய்யவேண்டும். என்ன செய்கிறார் என்று பார்ப்போம். இவருடைய செயலை நாம் புரோகிராமாக மாற்றி வருகிறோம்.அதாவது stage 1 ல் நாம் எழுதிய program மில் டாக்டர் இல்லாவிட்டால் என்ன செய்யவேண்டும் என்ற logic இல்லை. அதனால் நம்ம புரோகிராமும் முழுமையானதாக இல்லை. வாங்க அடுத்த stage க்கு போவோம்.
இதிலிருந்து நாம் பெறவேண்டிய பாடம் என்னவென்றால் லாஜிக்குகளை தேடி நாம் எங்கும் அலையவேண்டியதில்லை. ஒரு செயலை செய்யும்போது என்னென்னவெல்லாம் செய்யவேண்டியிருக்கிறது (அல்லது செய்வார்கள் - செய்யவேண்டிவரும்) என்பதை யதார்த்தமாக (கற்பனையாக இல்லை) உணர்ந்து பட்டியல் போட்டாலே லாஜிக் தானாக டெவலப் ஆகிவிடும்.
நம்முடைய இந்த தொடரின் நோக்கமே யதார்த்த வாழ்க்கையை எப்படி program மாக மாற்றுவது என்பதுதான். இந்த அடிப்படையை தெரிந்து கொண்டீர்களானால் பெரும்பாலான விஷயங்களை புரிந்துகொண்டு உங்களால் லாஜிக் (program) எழுத முடியும்.
if..else
நாம் பார்த்த simple if then
statement ல் expression false ஆகிவிட்டால் என்ன செய்யவேண்டும் என்ற logic இல்லை. இதற்கு else part கைகொடுக்கிறது. எப்படி?
இதனுடைய syntax
if (testExpression)
{
// statements
}
else
{
// statements
}
if டாக்டர் உள்ளே இருந்தால் then நோயாளியை உள்ளே அனுமதிக்கவும்
else டாக்டர் இல்லைங்கிற தகவலை சொல்லவும் இதுதான் if statement.
இங்கே டாக்டர் உள்ளே இருந்தால் என்பது boolean expression ஆகும். இதற்கு இருக்கிறார்
(true) அல்லது இல்லை (false) என்று ஏதாவது ஒரு பதில்தான் உங்களால் தரமுடியும். அந்த பதிலை போட்டு if எப்படி மாறுகிறது என்று பாருங்கள்.
டாக்டர் உள்ளே இல்லை என்றால் என்னாகும்?
டாக்டர் உள்ளே இருந்தால் என்கிற expression இல்லை என்று மாறுகிறது.
இங்கே expression false ஆக மாறிவிட்டது அதனால் true part statement
execute செய்யப்படாமல் else part execute செய்யப்படும்.
நீங்களும் டாக்டர் இல்லைங்கிற தகவலை சொல்லிவிடுவீர்கள். நமது புரோகிராமும் தகவலை சொல்லிவிடும். கம்பவுண்டர் (அதாங்க நீங்க) உட்கார்ந்திருக்கீங்க. ஒரு நோயாளி வருகிறார்; டாக்டர் உள்ளே இல்லை; லாஜிக் படி டாக்டர் இல்லைன்னு தகவல் சொல்லியாச்சு. நோயாளி அநாவசியமாக காத்திருக்காமல் போய்விட்டார். அரைமணி நேரம் கழித்து டாக்டர் வருகிறார். என்னப்பா யாரையும் காணோம்னு கேட்கிறார். நீங்களும் வந்த நோயாளிகளை இல்லைன்னு சொல்லி அனுப்பிய விசயத்தை சொல்றீங்க.
டாக்டருக்கு ஒரே கவலை. ஏம்ப்பா கம்பவுண்டரு! நான் இல்லைன்னதும் உடனே அவர்களை அனுப்பிவச்சிடறதா.. ஒரு போன் பண்ணி வருகிறேனா இல்லையான்னு கேட்டிருந்தா காத்திருக்க சொல்லியிருப்பேன்ல அப்படின்னு சொல்கிறார். ஆகா இது நமக்கு தெரியாம போயிடுச்சே. சரிங்க டாக்டர் இனிமேல் அந்த மாதிரியே செய்யறேன்னு சொல்றீங்க. Stage 3 இப்போ உங்களுடைய லாஜிக் கொஞ்சம் கொஞ்சமா improve ஆகுது. இனி நம்ம program மையும் improve செய்யவேண்டுமே! என்ன செய்ய? கம்பவுண்டருடைய செயலை பட்டியல்
டாக்டருக்கு ஒரே கவலை. ஏம்ப்பா கம்பவுண்டரு! நான் இல்லைன்னதும் உடனே அவர்களை அனுப்பிவச்சிடறதா.. ஒரு போன் பண்ணி வருகிறேனா இல்லையான்னு கேட்டிருந்தா காத்திருக்க சொல்லியிருப்பேன்ல அப்படின்னு சொல்கிறார். ஆகா இது நமக்கு தெரியாம போயிடுச்சே. சரிங்க டாக்டர் இனிமேல் அந்த மாதிரியே செய்யறேன்னு சொல்றீங்க. Stage 3 இப்போ உங்களுடைய லாஜிக் கொஞ்சம் கொஞ்சமா improve ஆகுது. இனி நம்ம program மையும் improve செய்யவேண்டுமே! என்ன செய்ய? கம்பவுண்டருடைய செயலை பட்டியல்
= போட்டு அதிலிருந்து ஏதாவது clue கிடைக்கிறதான்னு பார்ப்போம்.
டாக்டர் இருந்தா நோயாளியை உள்ளே அனுப்பனும்; இல்லை வந்திடுவாருன்னா நோயாளியை காத்திருக்க சொல்லனும்;
இல்லைன்னா டாக்டர் இல்லைங்கிற தகவலை சொல்லனும்;
இது தான் நீங்க பயன்படுத்துற if statement. இதில் இல்லை வந்திடுவாருன்னா என்பதை பயன்படுத்தியிருக்கீங்க. இதற்கு ஒரு CONDITION FALSE ஆகிவிட்டால் இன்னொரு CONDITION னை USE பண்ணுறீங்கன்னு அர்த்தம். இதற்கு பொருத்தமான PROGRAMMING COMMAND என்ன இருக்கிறது?.... if..else if PART இருக்கே... இதை வச்சு எப்படி எழுதலாம்னு பார்ப்போம்.
மேலே நாம் பார்த்த if..else statement ல் டாக்டர் இல்லாவிட்டால் என்ன செய்யவேண்டும் என்ற logic முழுமையாக இல்லை. அதாவது டாக்டர் உள்ளே இல்லை. ஆனால் ஒருவேளை டாக்டர் இன்று 1/2 மணிநேரம் தாமதமாக வரலாம் அல்லது வராமலும் போகலாம். இந்த சூழ்நிலையில் வந்த நோயாளியிடம் எப்படி நடந்துகொள்வது என்பதற்கு else if part கைகொடுக்கிறது. எப்படி?
if டாக்டர் உள்ளே இருந்தால் then நோயாளியை உள்ளே அனுமதிக்கவும்
else if டாக்டர் வருவார் then நோயாளியை காத்திருக்க சொல்லவும்
else டாக்டர் இன்று விடுமுறை என்று சொல்லிவிடவும்
இதுதான் if statement.
ஆனால் அரை மணி நேரத்தில் வருவார் என்றால் என்னாகும்?
டாக்டர் உள்ளே இருந்தால் என்கிற expression இல்லை என்று மாறுகிறது. எனவே False Side க்கு control போகிறது. அங்கே இன்னொரு condition evaluate செய்யப்படுகிறது.
டாக்டர் 1/2 மணிநேரத்தில் வருவார் என்கிற expression ஆம் என்று மாறுகிறது.
இங்கே expression true ஆக மாறிவிட்டது அதனால் expression வினுடைய true part statement execute செய்யப்படுகிறது.
எனவே நீங்கள் நோயாளியை காத்திருக்கச் சொல்வீர்கள்.
ஒருவேளை டாக்டர் இன்று வரவில்லையென்றால் என்னாகும்?
டாக்டர் 1/2 மணிநேரத்தில் வருவார் என்கிற expression இல்லை என்று மாறுகிறது. எனவே False Side க்கு control போகிறது.
எனவே டாக்டர் இன்று விடுமுறை என்று சொல்லி நோயாளியை நீங்கள் அனுப்பிவிடுகிறீர்கள்.
ஒரு நல்ல கம்பவுண்டராக உங்கள் பணியை செய்ய ஆரம்பிக்கிறீர்கள். ஒரு நோயாளி வருகிறார்; டாக்டரும் உள்ளே இருக்கிறார்; லாஜிக் படி நோயாளியை உள்ளே அனுப்பறீங்க அவர் உள்ளே போனதும் டாக்டர் உங்களை கூப்பிடுகிறார். ஏம்ப்பா! ஏற்கனவே ஒரு நோயாளி உள்ளே இருக்காருல்ல. இவர் இருக்கும் போது ஏன் இன்னொருத்தர உள்ளே அனுப்பினேன்னு கேட்கிறார். ஆஹா! இந்த யோசனை நமக்கு வரலியேன்னு நெனச்சுக்கிட்டே, சரிங்க டாக்டர் இனிமேல் இந்த தப்பு நடக்காதுன்னு சொல்றீங்க. ஆனா உங்க லாஜிக்குல இந்த தவறை தடுக்க எந்த condition னும் இல்லையே! இப்ப என்ன செய்யப்போறீங்க?Nested if..else PART இருக்கே..
ஒரு நல்ல கம்பவுண்டராக உங்கள் பணியை செய்ய ஆரம்பிக்கிறீர்கள். ஒரு நோயாளி வருகிறார்; டாக்டரும் உள்ளே இருக்கிறார்; லாஜிக் படி நோயாளியை உள்ளே அனுப்பறீங்க அவர் உள்ளே போனதும் டாக்டர் உங்களை கூப்பிடுகிறார். ஏம்ப்பா! ஏற்கனவே ஒரு நோயாளி உள்ளே இருக்காருல்ல. இவர் இருக்கும் போது ஏன் இன்னொருத்தர உள்ளே அனுப்பினேன்னு கேட்கிறார். ஆஹா! இந்த யோசனை நமக்கு வரலியேன்னு நெனச்சுக்கிட்டே, சரிங்க டாக்டர் இனிமேல் இந்த தப்பு நடக்காதுன்னு சொல்றீங்க. ஆனா உங்க லாஜிக்குல இந்த தவறை தடுக்க எந்த condition னும் இல்லையே! இப்ப என்ன செய்யப்போறீங்க?Nested if..else PART இருக்கே..
Nested if...else
ஒரு if க்குள் இன்னொரு if ஐ போட்டு எழுதுவதை nested if என்று சொல்கிறோம். அதாவது ஒரு if expression true ஆகிவிட்டால் இன்னொரு if ஐ போட்டு எழுதுவதை nested if என்று சொல்கிறோம். இதனுடைய syntax
Syntax of Nested
if...else
if (testExpression1)
{
//
statements to be executed if testExpression1 is true
}
else if(testExpression2)
{
//
statements to be executed if testExpression1 is false and testExpression2 is
true
}
else if (testExpression 3)
{
//
statements to be executed if testExpression1 and testExpression2 is false and
testExpression3 is true
}
.
.
else
{
//
statements to be executed if all test expressions are false
}
மேலே உள்ள படத்தில் வலது பக்கத்தில் சிவப்பு வண்ணத்தில் nested if structure உள்ளது.இடது பக்கத்தில் else if structure உள்ளது.
if டாக்டர் இருந்தால் then
if வைத்தியம் செய்துகொண்டிருந்தால் then காத்திருkக்க சொல்லவும் else உள்ளே அனுப்பவும் else டாக்டர் இல்லையென்றால் என்னென்ன செய்யனுமோ அதை செய்யவும்
மேலே உள்ள படத்தில் வலது பக்கத்தில் சிவப்பு வண்ணத்தில் nested if ஐ பயன்படுத்தியுள்ளோம்.
இதுவரை நாம் பார்த்த if வகைகள்:
1. if then (simple
if)
2. if
else
3. if..else if (evaluate
second expression if first one is false)
4. nested if (if
within if; evaluate second expression if first one is true)
If structure ரின் 4 பாகத்தையும் நாம் பார்த்துவி்ட்டோம்.
மேலே உள்ள flow chart ஆனது ஒரு கம்பவுண்டரின் செயல்களை ஓரளவுக்கு (முழுமையாக இல்லை) அழகாக விவரிக்கிறது. இப்படி விரிவுபடுத்த என்னன்னவெல்லாம் யோசித்தோம் என்பதை நினைவுபடுத்தி பாருங்கள்.
இதை நீங்கள் இன்னும் விரிவுபடுத்தலாம் Conditional statement அனைத்தும் நமது நிஜ வாழ்வோடு எப்படி ஒத்துப்போகிறது என்பதை கவனித்தீர்களா? இதிலிருந்து நமக்கு என்ன தெரிகிறது? அன்றாடம் நடக்கும் நிகழ்வுகளை சரியாக கவனித்தாலே நமக்கு லாஜிக் எளிமையாக புரிய ஆரம்பிக்கும். பிறகென்ன... அந்த லாஜிக்குளை programming command டுகளாக மாற்றிவிட முடியும்.
மேலே உள்ள flow chart ஆனது ஒரு கம்பவுண்டரின் செயல்களை ஓரளவுக்கு (முழுமையாக இல்லை) அழகாக விவரிக்கிறது. இப்படி விரிவுபடுத்த என்னன்னவெல்லாம் யோசித்தோம் என்பதை நினைவுபடுத்தி பாருங்கள்.
இதை நீங்கள் இன்னும் விரிவுபடுத்தலாம் Conditional statement அனைத்தும் நமது நிஜ வாழ்வோடு எப்படி ஒத்துப்போகிறது என்பதை கவனித்தீர்களா? இதிலிருந்து நமக்கு என்ன தெரிகிறது? அன்றாடம் நடக்கும் நிகழ்வுகளை சரியாக கவனித்தாலே நமக்கு லாஜிக் எளிமையாக புரிய ஆரம்பிக்கும். பிறகென்ன... அந்த லாஜிக்குளை programming command டுகளாக மாற்றிவிட முடியும்.
If statement களை நமது program மில் எப்படி பயன்படுத்துவது என்பது தெரிந்திருக்கும் என்று நம்புகிறேன். இந்த கம்பவுண்டர் உதாரணத்தை அப்படியே ஒரு Program ஆக மாற்ற முயற்சி செய்யுங்கள். இப்படித்தான் ஒவ்வொரு பயன்பாட்டுக்கும்
program எழுதப்படுகிறது. அதாவது ஒரு program எழுதுவதற்கு முன்பு எதற்காக நாம் program செய்யப்போகிறோமோ அந்த பணிகளைப் பற்றி நாம் முழுமையாக ஆய்வு செய்தால்தான் நமது Program அந்த பணிக்கு பிரயோஜனமாக இருக்கும். இல்லையென்றால் என்னாகும்? நமது Program நடைமுறைக்கு ஒத்துவராது என்று ஒதுக்கப்பட்டுவிடும்.
1 Comments
Tnx bro
ReplyDelete