|
نوشته شده توسط فرزاد
|
|
ﺳﺎﺧﺘﺎرھﺎی ﺗﺼﻤﯿﻢ ﮔﯿﺮی
در ﺑﺴﯿﺎری از ﻣﻮارد ھﻨﮕﺎم ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﻻزم اﺳـﺖ ﺗـﺎ از ﻋﺒـﺎرات ﺷـﺮﻃﻲ اﺳـﺘﻔﺎده ﻛﻨـﯿﻢ. ﺑـﺮای اﻧﺠـﺎم اﻳﻨﻜـﺎر دو روش ﻋﻤﺪه وﺟﻮد دارد. اﺳﺘﻔﺎده از if و ﻳﺎ . switchاز if ﺑﯿـﺸﺘﺮ ﺑـﺮای ﻣﻘﺎﻳـﺴﻪ ھـﺎی ﺗﻜـﻲ و ﻛﻮﭼـﻚ اﺳـﺘﻔﺎده ﻣـﻲ ﺷﻮد و ﺣﺎﺻﻞ ﻣﻘﺎﻳﺴﻪ ی آن ﻳﺎ true اﺳﺖ و ﻳﺎ . falseاز ﻋﺒﺎرت switchھﻨﮕﺎﻣﻲ اﺳﺘﻔﺎده ﻣـﻲ ﺷـﻮد ﻛـﻪ ﻣﻘﺎﻳـﺴﻪ ھﺎی ﻣﺘﻌﺪدی ﺑﺎﻳﺪ در ﻣﻮرد ﻳﻚ ﻣﻘﺪار ﺻﻮرت ﮔﯿﺮد. ھﺮ دو ﻋﺒﺎرت if و switchﺗﻮﺳﻂ ﻋﺒﺎرﺗﮫﺎی Boolean ﻛﻨﺘﺮل ﻣﻲ ﺷﻮﻧﺪ( trueو ﻳﺎ . ( falseدر ھﻨﮕـﺎم اﺳـﺘﻔﺎده از if اﮔﺮ ﻋﺒﺎرت Boolean ﺣﺎﺻﻞ اش trueﺑﺎﺷﺪ اوﻟﯿﻦ ﻗﺴﻤﺖ ﺷﺮط اﺟﺮا ﻣﻲ ﺷـﻮد و ﺳـﭙﺲ ﺑﺮﻧﺎﻣـﻪ از اﻧﺘﮫـﺎی if اداﻣـﻪ ﭘﯿﺪا ﻣﻲ ﻛﻨﺪ. اﮔﺮ ﺣﺎﺻﻞ ﻋﺒﺎرت Boolean ﻣﺴﺎوی false ﺑﺎﺷﺪ ﻛﻨﺘﺮل ﺑﺮﻧﺎﻣﻪ ﺑﻪ ﻗﺴﻤﺖ else ﻣﻨﺘﻘﻞ ﻣﻲ ﺷﻮد.
ﻣﺜﺎل :
ﻳﻚ ﭘﺮوژه ی ﺟﺪﻳﺪ consoleﺑﺎز ﻛﻨﯿﺪ و ﻧﺎم آﻧﺮا ex۴۰ ﺑﮕﺬارﻳﺪ. ﺳﭙﺲ ﻛﺪ زﻳﺮ را در آن وارد و اﺟﺮا ﻛﻨﯿﺪ :
;using System
namespace ex۴۰ } class Class۱ } [[STAThread (static void Main(string[] args } ;("Console.WriteLine("Enter ۱ character to be evaluated ;()char cUserInput = (char) Console.Read
( ( if ( char.IsDigit ( cUserInput ;("!Console.WriteLine("The char is a number else ;("!Console.WriteLine("The char is not a number { { {
ﻧﻜﺎﺗﻲ در ﻣﻮرد ﻛﺪ ﻓﻮق :
ﺳﻲ ﺷﺎرپ ﺑﻪ ﻛﻮﭼﻜﻲ و ﺑﺰرﮔـﻲ ﺣـﺮوف ﺣـﺴﺎس اﺳـﺖ . ﺑـﺮای ﻣﺜـﺎل cUserInputﺑـﺎ cUserinput ﻓﺮق ﻣﻲ ﻛﻨﺪ. ﺣﺘﻤﺎ ﺑﺎﻳﺪ ﺑﻌﺪ از if ﭘﺮاﻧﺘﺰھﺎ ذﻛﺮ ﮔﺮدد. ﺣﺘﻤﺎ ﺑﺎﻳﺪ داﺧﻞ if ﻳﻚ ﻋﺒﺎرت Boolean ذﻛﺮ ﺷﻮد ﻣﺎﻧﻨﺪ ( ۵>. if( x در ﺳـﻲ ﺷـﺎرپ ﻣﻘﺎﻳـﺴﻪ ی ﺗـﺴﺎوی دو ﻋﺒـﺎرت ﺑـﺎ == و اﻧﺘـﺴﺎب ﺑـﺎ = اﻧﺠـﺎم ﻣـﻲ ﺷـﻮد. ﻣﻮاردی ھﺴﺘﻨﺪ ﻛﻪ اﻏﻠﺐ ﺗﺎزه ﻛﺎران ﺑﺎ آن ﻣﺸﻜﻞ دارﻧﺪ! ﺑﺮای ﻣﺜﺎل ( ۳== if ( iﺻﺤﯿﺢ اﺳﺖ اﻣـﺎ (۳ = if ( iدر ﺳﻲ ﺷﺎرپ ﻣﻌﻨﺎﻳﻲ ﻧﺪارد. اﮔﺮ ﺑﻌﺪ از if ﻳﻚ ﺧﻂ ﻛﺪ ﻗﺮار ﮔﯿﺮد ﻧﯿﺎزی ﺑﻪ آوردن آﻛﻮﻻد ھﺎ ﻧﯿﺴﺖ. ھﻨﮕﺎﻣﻲ ﻧﯿﺎز ﺑﻪ آﻛﻮﻻدھﺎ ﻣﻲ ﺑﺎﺷﺪ ﻛـﻪ ﺑﯿﺶ از ﻳﻚ ﺧﻂ ﺑﺎﻳﺪ ﺑﻌﺪ از if ﻗﺮار ﮔﯿﺮد. ھﻤﺎﻧﻄﻮر ﻛﻪ ذﻛﺮ ﺷﺪ در ﺳﻲ ﺷﺎرپ ھﻤﻪ ﭼﯿـﺰ ﺷـﻲء اﺳـﺖ ﺣﺘـﻲ ﻧـﻮع ھـﺎی ﭘﺎﻳـﻪ اﻳـﻲ ﻣﺎﻧﻨـﺪ . charﺑـﺎ اﺳﺘﻔﺎده از ﻣﺘﺪ IsDigitآن ﻣﻲ ﺗﻮان ﭼﻚ ﻛﺮد ﻛﻪ آﻳﺎ ورودی آن ﻋﺪد اﺳﺖ ﻳﺎ ﺧﯿﺮ؟ ( در ﻣﻮرد ﻣﺘـﺪھﺎ ﺻـﺤﺒﺖﺧﻮاھﺪ ﺷﺪ. )
|