ሁኔታዊ ቃላት (Conditional Statements)4.1 ምዕላደ-ቃላት
4.2 የሁኔታዊ ቃላት ተግባራት ምንድን ናቸው?ሁኔታዊ ቃላት አንድ ወይም ካንድ በላይ ተፈታኝ ሁኔታዎች በመገምገም ውሳኔ ለመስጠት የሚያስችሉ መመሪያ ቃላት ናቸው። ሁኔታዎችን በግልጽና በማያሻማ መንገድ መርምሮና ውሳኔ ላይ ደርሶ ተፈላጊ እርምጃዎችን መውሰድ ይቻላል። ሁኔታዊ ቃላት «ውሳኔ አስወሳኝ ቃላት» ተብለው በደፈናው ይጠቀሳሉ። መመዘን የሚሹ ተጨባጭ ሁኔታዎች ሥፍር ቍጥር የላቸውም። በፕሮግራም ዓለም ዴታዎችን መዝኖ፥ የተጠቃሚውን ፍላጐት ተገንዝቦ፥ ያለን የጕልበትና የብቃት መጠን ለክቶ፥ የመነጩ ውጤቶችን መርምሮ ልዩ ልዩ እርምጃ መውሰድ ዘወትራዊ ነው። ለምሳሌ አንድ ቀላል ችግር ብንመለከት፤ አንድ ቍጥር «ድፍን» ወይም «ጐደሎ» መሆኑን እንዴት መወሰን እንችላለን? አንዱ መንገድ ይህ ሊሆን ይችላል።
ሁኔታውን በዝርዝር እንመልከት። የnumber ዕሴት 2.5 ነው። የ «(int) number» ግን 2 ነው። አንድን ተግባራዊ ቍጥር ወደ ሙሉ ቍጥር ስንቀይር የተሸራፊው ክፍል ቍጥር ይጣላል። የሁለቱ ዕሴት ለእኩልነት ስናነጻጽር፥ ውጤቱ «አይደሉም» (ሐሰት) ይሆናል። ስለዚህ «It is not whole number» የሚለው ቃል ይጻፋል። የnumberን ዕሴት እንቀይርና እንደገና እንሞክር።
የnumber ሆነ የ«(int) number» ዕሴት 2 ነው። በመሆኑም ለእኩልነት ንጽጽሩ ሲካሄድ ውሴቱ «አዎ» (እውን) ይሆናል። ስለዚህ «It is a whole number» የሚለው ቃል ይጻፋል። 4.3 ሁኔታዊ ቃላት እነማን ናቸው?የሁኔታዊ ቃላት አይነትና ብዛት እንደሚከተለው ነው። 4.3.1 የif-then ቃልየif ቃል ሁል ጊዜ እንኳን ባይሆንም ሦስት አበይት ክፍሎች አሉት። 1ኛ) የif ቃል 2ኛ) ተፈታኝ ሁኔታ ወይም ሁኔታዎች 3ኛ) እርምጃ ወሳጅ ቃላት (መመሪያዎች) ናቸው። የif-then ቃል አገባብ ምሳሌ፦ ሁለት ኢንትጀር ተውላጠ-ቃላት (two int variables) አሉን እንበል። እነሱም x እና y ናቸው። ዓላማችን x ከ y ያንሳል ወይስ አያንስም የሚለውን ጥያቄ የif-thenን ቃል በመጠቀም መወሰን ነው። ቃሉ ይኸን ይመስላል። ተግባሩ፥ የx ዕሴት ከy የሚያንስ ከሆነ፥ ያንን ገልጸህ ጻፍ ነው።
በጥብቅ ልንረዳው የሚገባ አንዱ ነገር ቢኖር፥ የመፈተኛ ቃላት ግምገማ ውጤት ሁልጊዜ «አዎ» ወይም «አይደለም» ነው። በሌላ አነጋገር «እውን» ወይም «ሐሰት» ነው። ከዚህ ምሳሌ አንጻር፥ ውጡቱ «አዎ» ከሆነ በሥሩ ያለው እርምጃ ይወሰዳል። ካልሆነ ግን፥ ያ እርምጃ አይወሰደም። ከላይ ያየነው የif-then ቃል አጻጻፍ ለየት ባለ መልክ ሊቀርብ ይችላል። በሰውነቱ ክፍል ያለው ቃል አንድ ብቻ ከሆነ፥ የጥምዝ-ቅንፎችን የማስገባት ግዳጅ የለም። እናም ውጤቱ ይኸን ይመስላል።
4.3.2 የif-then-elseአንድ ሁኔታ ወይም ብዙ ሁኔታዎች ተመዝነው ውጤቱ «አዎ» ከሆነ፥ በif ሥር ያለው እርምጃ ይወሰዳል። ነገር ግን ውጤቱ «አይደለም» ከሆነ በelse ሥር ያለው እርምጃ ይወሰዳል። በድጋሚ ለማሳሰብ፥ የተፈታኝ ሁኔታ ቃል ውጤት ከ«አዎ» ወይም ከ«አይደለም» አይወጣም። የif-then-else ቃል አገባብ ከዚህ በላይ ያየነውን ምሳሌ ከለውጡ ጋራ እንደገና እዚህ እንመልከት።
ልዩነቱ ለሁለቱም ሁኔታዊ ውጤቶች ተወሳጅ እርምጃዎች አሉ። የተፈታኙ ቃል ውጤት አዎ ከሆነ በif ሥር ያለው እርምጃ ቦታውን ይወስዳል። ያ ሐሰት ከሆነ ግን በelse ሥር ብቻ ያለው እርምጃ ይፈጽማል። እንደ ሁኔታው ተገቢውን ቃል በተግባር ለማዋል ቻልን ማለት ነው። ካንድ በላይ ተፈታኝ ሁኔታዎች ካሉን፥ አጻጻፉና አጠቃቀሙ እንዲህ ነው። ለምሳሌ ይረዳን ዘንድ፥ አሁንም ከላይ ያየነውን ምሳሌ እንጠቀማለን። ሦስት ሁኔታዎችን እንፈትናለን፦ ለመሆኑ x እና y እኩል ናቸው? x ከy ያንሳል? ወይም y ከx ይበልጣል?
በዚህ ቃል ሦስት ተፈታኝ ሁኔታዎች ይገመገማሉ። በሁለት ቍጥሮች መካከል ያለ ግኑኝነት ከዚህ ሰለማይወጣ፥ የአንዱ ውጤት እውን መሆኑ አይቀርም። አገማገሙ እንዲህ ነው። የመጀመሪያው «ተፈታኝ ቃል» ተነጻጽሮ ውጤቱ «አዎ» ከሆነ፥ በሰውነቱ ያለው መመሪያ ቃል (statement) በሥራ ላይ ይውላል። ውጤቱ «አይደለም» ከሆነ፥ ሁለተኛው «ተፈታኝ ቃል» ይነጻጸርና ውጠቴ «አዎ» ከሆነ፥ በሰውነቱ ያለው መመሪያ በሥራ ይውላል። ውጤቱ «አይደለም» ከሆነ ግን ሦስተኛው «ተፈታኝ ቃል» ይመረመርና እንደ ውጤቱ ተከታዩ እርምጃ ይወሰዳል። ለተግባራዊ ምሳሌ ፕሮግራም ???? ተመልከት።
4.3.3 ራሱን አቀፍ የif ቃልማንኛውም የif ቃል ሰውነት ሌሎች የif ቃላትን መሸከም ይችላሉ። በውስጡ ያሉት የif ቃላት እንዲሁ ሌሎችን ማቀፍ ይችላሉ። እንደዚህ አይነቱ ሁኔታዊ ቃል በእንግሊዘኛ «nested if» ቃል ይሉታል።
4.4 የswitch ቃልየswitch ቃል ሁኔታዊ ቃል ነው። በቃል-አገባብ፥ በአሠራር፥ እንዲሁም በጠቀሜታ ከif ይለያል። ቃሉ አንድን «ተፈታኝ-ቃል» (expression) በተረታ ከተሰጡ ልዩ ልዩ አማራጮች ጋር በማነጻጸርና ከየትኛው ጋር እኩል እንደሆነ የሚያፈላልግና እርምጃ የሚያስወሰድ ነው። የswitch ቃል አገባብ ይኸን ይመስላል። ከዚህ በታች የቀረበው ምሳሌ፥ የ«dayን ዕሴት ከፈለቀቀ በኋላ ከያንዳንዱ የcase ዕሴት ጋራ እኩልነት እስከተገኘ ድረስ ያነጻጽራል። የግምገማው ውጤት «አዎ» ካልሆነ የdefault ክፍል ሥራ ላይ ይውላል። ተፈታኙ ቃል «day» ሲሆን የሚነጻጸረው ከያንዳንዱ የcase ቃል ጋር ሆኖ፥ እኩል የሆነው በሥራ ይውልና ሌሎቹ ይዘለላሉ። በswitch ሕግ መሠረት የሚነጻጸሩት አማራጮች የግድ በራሳቸው የቆሙ ዕሴት መሆን አለባቸው። ታውላጠ-ቃል አይፈቀደም።
የእያንዳንዱ አማራጭ ሰውነት ለብቻው በሥራ ላይ እንዲውል ከተፈለገ በbreak ቃል መገደብ አለበት። ለዚህም ነው በያንዳንዱ ክፍል የbreak እላይ የታከለው። ያንን ያለማድረግ ግን ቀጥሎ በተሰጠው ምሳሌ ያለውን ሁኔታ ያመጣል።
ይህ ቃል በሥራ ላይ ከዋለ፥ የሚከተለው ይሆናል። ለምሳሌ ያህል የnumber ዕሴት 64 ነበር። ከመጀመሪያው የcase ቃል ማለትም 16 ይነጻጸራል። ውጤቱ እኩል አይደሉም ነው። ቀጥሎ ከ32 ጋራ ይነጻጸራል፤ አሁንም ውጤቱ እኩል አይደሉም ነው። ነገር ግን ከ64 ጋረ ሲነጻጸሩ እኩል ስለሚሆኑ፥ በሥሩ ያለው እርምጃ ይወሰዳል። ነገር ግን የእርምጃው ቃል በbreake ቃል ስላልተገደበ፥ ቀጥለው ያሉት የሰውነት ክፍሎች በሙሉ በሥራ ላይ ይውላሉ። በዚህ የተነሳ የሚወጣው ውጤት ይኸን ይመስላል። 64, 128, 256 ይህ የswitch መሠረታዊ ባህሪ ነው። ላንዳንድ ችግሮች ይህ ጥሩ መፍትሔ ይሆናል። ይኸን ባህሪ ለማረም መድኃኒቱ በእያንዳንዱ የሰውነት መጨረሻ ላይ የbreakን ቃል ማስገባት ነው።
|
||||||||||||||||||||||||||||||||||||||
Copyright © 2002-2005 Senamirmir Project