ஒரு condition true வாக இருக்கும் வரையில் குறிப்பிட்ட statement களை திரும்பத்திரும்ப execute செய்ய while loop பயன்படுகிறது.
இதையேதான் for loop செய்கிறதே, பின்பு அதற்கும் இதற்கும் என்ன வித்தியாசம் என்று கேட்கிறீர்களா? வித்தியாசம் இருக்கிறது. For loop வேலை செய்வதற்கு ஆரம்ப எண்ணும் முடிவு எண்ணும் அவசியம் தேவை. ஆனால் while loop பிற்கு ஆரம்ப எண், முடிவு எண் அவசியமில்லை, தேவையானால் வேறுவகையில் பயன்படுத்திக் கொள்ளலாம்.
While loop பின் syntax
இதையேதான் for loop செய்கிறதே, பின்பு அதற்கும் இதற்கும் என்ன வித்தியாசம் என்று கேட்கிறீர்களா? வித்தியாசம் இருக்கிறது. For loop வேலை செய்வதற்கு ஆரம்ப எண்ணும் முடிவு எண்ணும் அவசியம் தேவை. ஆனால் while loop பிற்கு ஆரம்ப எண், முடிவு எண் அவசியமில்லை, தேவையானால் வேறுவகையில் பயன்படுத்திக் கொள்ளலாம்.
While loop பின் syntax
WHILE this_boolean_condition_is_true
BEGIN
execute these statements
your statements here
END
step 1 : முதலில் this_boolean_condition_is_true என்பது true ஆக இருக்கிறதா? இல்லை false ஆக இருக்கிறதா? என்பது evaluate செய்யப்படுகிறது.
step 2 : ஒருவேளை step 1 னுடைய result false ஆக இருந்தால் begin மற்றும் end டுக்கு நடுவில் இருக்கும் statement கள் execute செய்யப்படாது. end டுக்கு அடுத்துள்ள part க்கு control சென்று விடும்.
step 3: ஒருவேளை step 1 னுடைய result true ஆக இருந்தால் begin மற்றும் end டுக்கு நடுவில் இருக்கும் statement கள் execute செய்யப்படும். பின்னர் மீண்டும் step 1 க்கு control செல்லும்.
இப்படியாக this_boolean_condition_is_true என்பது true ஆக இருக்கும் வரை while loop தனக்குள் இருக்கும் statement களை திரும்பத்திரும்ப execute செய்துகொண்டேயிருக்கும்.
இப்படியே execute செய்துகொண்டிருந்தால் endless loop ஆக ஆகிவிடுமே? program hang ஆக விடுமே என்ற கேள்வி எழும். உண்மைதான் for loop ஐ போன்று இத்தனை முறை execute செய்துவிட்டு வெளியேறிவிடு என்று இதில் நாம் எழுதப்போவதில்லை. பிறகு எப்படி while loop முடிவுக்கு வருகிறது?
while loop ல் statement எழுதுகிறோம் அல்லவா? அங்குதான் while loop பின் முடிவு எல்லை எதுவென்று தீர்மானிக்கப்படுகிறது.
அதாவது while loop execute ஆகினால் ஏதாவது ஒன்று நடக்கும் அல்லவா? அந்த ஒன்றின் அடிப்படையில் while loop ஐ தொடர்வதா வேண்டாமா என்பதை நம்மால் தீர்மானிக்க முடியும்.
உதாரணத்திற்கு உங்கள் ஊரில் தண்ணீர் பஞ்சம் வந்துவிட்டதென்று வைத்துக்கொள்வோம். பிரச்சினை தீர கிணறு ஒன்று வெட்ட முடிவாகிவிட்டது. ஊரில் நீங்கள்தான் படித்தபிள்ளை என்று கிணறு வெட்ட உங்களிடம் plan கேட்கிறார்கள். இப்பொழுது நீங்கள் algorithm எழுதவேண்டும்.
அதாவது while loop execute ஆகினால் ஏதாவது ஒன்று நடக்கும் அல்லவா? அந்த ஒன்றின் அடிப்படையில் while loop ஐ தொடர்வதா வேண்டாமா என்பதை நம்மால் தீர்மானிக்க முடியும்.
உதாரணத்திற்கு உங்கள் ஊரில் தண்ணீர் பஞ்சம் வந்துவிட்டதென்று வைத்துக்கொள்வோம். பிரச்சினை தீர கிணறு ஒன்று வெட்ட முடிவாகிவிட்டது. ஊரில் நீங்கள்தான் படித்தபிள்ளை என்று கிணறு வெட்ட உங்களிடம் plan கேட்கிறார்கள். இப்பொழுது நீங்கள் algorithm எழுதவேண்டும்.
எப்படி எழுதுவீர்கள்?
1. கிணறு வெட்ட வேண்டிய இடத்தை தேர்வு செய்யவும்.
2. இத்தனை அடி ஆழம் கிணறு வெட்டவும்.
இந்த பிளானை கொடுத்தவுடன், எத்தனை அடி வெட்டனும் தம்பின்னு கேட்பார்கள். நீங்க 10 அடின்னு சொல்றீங்க. 10 அடி ஆழத்தில் தண்ணீர் கிடைத்துவிடும் என்று எப்படி தம்பி சொல்றீங்க? ஒருவேளை கிடைக்கலைன்னா என்ன செய்யறது?
அவர்கள் கேள்வி நியாயமாக இருக்கிறது.
10 அடிதான் கிணறு வெட்ட வேண்டும் என்பதை முன்னரே தீர்மானிக்க இயலாது என்பதுதான் யதார்த்தமான உண்மை (ஆனால் for loop புக்கு முடிவு எல்லை ஆரம்பத்திலேயே தீர்மானிக்கப்பட்டுவிடுகிறது என்பதை கவனத்தில் கொள்ளவும்). பின்னே இந்த மாதிரி வேலைகளுக்கு முடிவு எல்லையை எப்படி வரையறுப்பது?
லாஜிக் இல்லாமல் எவராலும் கிணறு வெட்ட முடியாது. சரி யோசிப்போம்...
சரி 20 அடி என்று மாற்றுவீர்களா? இதிலும் அதே பிரச்சனை உள்ளது.
பின்னே எப்படித்தான் கிணறு வெட்ட algorithm எழுதுவது?
1. கிணறு வெட்ட வேண்டிய இடத்தை தேர்வு செய்யவும்.
2. தண்ணீர் கிடைக்கும் வரை கிணறு வெட்டவும்.
சூப்பர்! இதைத்தான் யதார்த்தமாக யோசிப்பது என்பது.
மேலோட்டமாக இருக்கும் 2 ஆவது step ல் பல விசயங்கள் அடங்கியுள்ளன. அவற்றை விவரித்து எழுதினால் தான் while loop ஐ பற்றி நன்றாக அறிந்துகொள்ளமுடியும்.
எப்படி விவரித்து எழுதுவது?
யோசியுங்கள்....
2.1. பள்ளம் தோண்டவும்
2.2. ஒருவேளை தண்ணீர் கிடைத்து விட்டால் தோண்டுவதை நிறுத்தவும்
2.3 ஒருவேளை 200 அடி ஆழம் வரை தோண்டியும் தண்ணீர் கிடைக்கவில்லையென்றால் தோண்டுவதை நிறுத்தவும்
எவ்வளவு எதார்த்தமான வழிமுறை பார்த்தீர்களா? இதில் ஏதாவது கற்பனை இருக்கிறதா?
அவ்வளவுதான் இப்போது லாஜிக் கிடைத்துவிட்டது.
சூப்பர்! இதைத்தான் யதார்த்தமாக யோசிப்பது என்பது.
மேலோட்டமாக இருக்கும் 2 ஆவது step ல் பல விசயங்கள் அடங்கியுள்ளன. அவற்றை விவரித்து எழுதினால் தான் while loop ஐ பற்றி நன்றாக அறிந்துகொள்ளமுடியும்.
எப்படி விவரித்து எழுதுவது?
யோசியுங்கள்....
1. கிணறு வெட்ட வேண்டிய இடத்தை தேர்வு செய்யவும்.
2. தண்ணீர் கிடைக்கும் வரை2.1. பள்ளம் தோண்டவும்
2.2. ஒருவேளை தண்ணீர் கிடைத்து விட்டால் தோண்டுவதை நிறுத்தவும்
2.3 ஒருவேளை 200 அடி ஆழம் வரை தோண்டியும் தண்ணீர் கிடைக்கவில்லையென்றால் தோண்டுவதை நிறுத்தவும்
எவ்வளவு எதார்த்தமான வழிமுறை பார்த்தீர்களா? இதில் ஏதாவது கற்பனை இருக்கிறதா?
அவ்வளவுதான் இப்போது லாஜிக் கிடைத்துவிட்டது.
இதை while loop பயன்படுத்தி எழுதுவோமா?
while தண்ணீர் கிடைக்கும் வரை
begin
பள்ளம் தோண்டவும்
ஒருவேளை தண்ணீர் கிடைத்து விட்டால் தோண்டுவதை நிறுத்தவும்
ஒருவேளை 200 அடி தோண்டியும் தண்ணீர் கிடைக்கவில்லையென்றால் தோண்டுவதை நிறுத்தவும்
end
இங்கு 200 அடி என்பது எங்கள் ஊர் மக்கள் எவ்வளவு அடி அதிகபட்சம் வெட்டுவார்கள் என்பதை தெரிவித்ததால் அப்படி போட்டுள்ளேன். மற்றபடி அவரவர் தேவைக்கேற்ப முடிவு எல்லை மாறுபடும்.
இப்பொழுது while loop நமது வாழ்வில் எப்படி பயன்படுத்தப்படுகிறது என்பது தெரிகிறதா? இது ஒரு உதாரணம்தான் இன்னும் நிறைய உதாரணங்கள் இருக்கின்றன. விரிவஞ்சி இதை மட்டும் சொல்கிறேன்.
இந்த மாதிரி விசயத்துக்கு for loop சரிப்பட்டு வராது என்பது இப்பொழுது உங்களுக்கு புரிந்திருக்கும் என்று நம்புகின்றேன்.
while loop ஐ பற்றி தெரிந்துகொள்ள இன்னும் நிறைய விசயங்கள் உள்ளன. அவற்றை அடுத்த பாகத்தில் பார்ப்போம்.
No comments:
Post a Comment