our notes for our youngers

August 12, 2009

basic of C# (part 14)

Filed under: Basic of C# — Tags: , , , , , — sevenlamp @ 11:36 AM

တခါတေလ ကြၽန္ေတာ္တို႔ Looping ေတြထဲမွာ looping variable မပါတာမ်ိဳးလည္း ရွိပါတယ္။ looping ကို အၾကိမ္အေရအတြက္ အတိအက် မဟုတ္ပဲ looping variable မပါတဲ႔ looping မ်ိဳး သံုးဖို႔ လိုလာျပီ ဆိုရင္ေတာ့ while နဲ႔ do-while ကိုသံုးေလ့ရွိပါတယ္။ ဥပမာ.. ကြၽန္ေတာ္က user ဆီက character တစ္လံုးလက္ခံမယ္၊ ျပီးရင္ အဲ့ဒီ character ရဲ႕ ASCII value ကိုျပန္ျပီးထုတ္ျပေပးမယ္။ ဒီအလုပ္ကိုပဲ user ၾကိဳက္သေလာက္ လုပ္နိုင္တယ္။ မလုပ္ခ်င္ေတာ့ဘူးဆိုရင္ ESC key ႏွိပ္ျပီးထြက္ရမယ္။ ဟုတ္ျပီေနာ္ ဒီ program ေလးေရးၾကည့္ရေအာင္။

using System;
class forlooptest
{
    static void Main()
    {
        bool stop = false;
        do
        {
            Console.Write("Enter a char to see ASCII value of it (or) press ESC to close.");
            ConsoleKeyInfo cki = Console.ReadKey();
            if (cki.Key != ConsoleKey.Escape)
                Console.WriteLine("\n{0} = {1}\n", cki.Key.ToString(), (int)cki.KeyChar);
            else
                stop = true;
        } while (stop==false);
    }
}

ဒီ program ေလးမွာ looping ဆက္လုပ္မလား မလုပ္ေတာ့ဘူးလား ဆိုတာကို stop ဆိုတဲ႔ boolean variable ေလးနဲ႔ ထိန္းထားတယ္။ default value အေနနဲ႔ false ထည့္ေပးထားတယ္(program မပိတ္ဖူးလို႔ ဆိုလိုတာေပါ့) user ဆီကေန key တစ္ခုထဲလက္ခံမယ္ဆိုရင္ Console.ReadKey() function ကိုသံုးရတယ္။ သူက ConsoleKeyInfo ဆိုတဲ႔ structure ေလး return ျပန္တယ္။ အဲ့ဒီ ConsoleKeyInfo structure ထဲမွာ Key ဆိုတဲ႔ property က user ရိုက္လိုက္တဲ႔ ConsoleKey အမ်ိဳးအစားျဖစ္ျပီး၊ KeyChar ကေတာ့ character ျပန္ထုတ္ေပးတယ္။ ဒါေၾကာင့္ user ရိုက္လိုက္တဲ႔ key က Escape နဲ႔ မတူဘူးဆိုရင္ user ကို output ထုတ္ျပတယ္။ တူတယ္ဆိုရင္ေတာ့ program ပိတ္ဖို႔အတြက္ stop ထဲကို true ထည့္ေပးလိုက္တယ္။ ေနာက္ဆံုးမွ while condition မွာ stop ထဲက တန္ဖိုးဟာ false နဲ႔ ညီလား စစ္လိုက္တယ္။ ညီရင္ looping ကို ေနာက္တစ္ေခါက္ျပန္လုပ္မယ္။ မညီဘူးဆိုရင္ program ပိတ္သြားမွာပါ။

foreach looping
foreach looping ကို collection(အစုအေ၀း) တစ္ခုအတြင္းမွာ ရွိသေလာက္ အားလံုး လုပ္ခ်င္တယ္ဆိုရင္ သံုးေလ႔ရွိပါတယ္။ array ထဲမွာ ရွိသေလာက္လုပ္ခ်င္တယ္၊ class ထဲက property ေတြအားလံုးလုပ္ခ်င္တယ္၊ ဒီလို အေျခအေနမ်ိဳးမွာ foreach loop ကိုသံုးပါတယ္။ ဥပမာ.. ကြၽန္ေတာ့္ ဘေလာ့ကို လာၾကည့္တဲ႔ သူငယ္ခ်င္းေတြ အားလံုးကို တစ္ေယာက္ laptop တစ္လံုး လက္ေဆာင္ေပးခ်င္တယ္ ဆိုရင္ foreach ကိုသံုးျပီး ဒီလို ေရးရမွာပါ..😀

foreach( People p in myBlog.visitors )
{
	p = “a laptop”;
}

foreach ကိုသံုးလိုက္ျခင္းအားျဖင့္ ကြၽန္ေတာ့ ဘေလာ့ကို လာၾကည့္တဲ႔သူ ဘယ္ေလာက္ရွိလဲ ဆိုတာကို သိေနစရာ မလိုေတာ့ပါဘူး။ visitor မကုန္မခ်င္း ဒီ looping က အလုပ္လုပ္မွာပါ။ foreach looping မွာေတာ့ start ေတြ stop ေတြ step ေတြ မလိုပါဘူး။ in keyword ရဲ႕ ေရွ႕မွာ colletion အတြင္းမွာ ရွိတဲ႔ value ေတြရဲ႕ datatype ကိုေၾကျငာရျပီး in ရဲ႕ ေနာက္မွာေတာ့ collection name ကိုေပးရပါတယ္။ အခု foreach ကိုသံုးျပီး program ေလးတစ္ခု ေရးၾကည့္ရေအာင္။ ကြၽန္ေတာ္က user ဆီက စာေၾကာင္းတစ္ေၾကာင္းလက္ခံမယ္။ ျပီးရင္ အဲ့ဒီ စာေၾကာင္းထဲမွာ ရွိတဲ႔ character ေတြရဲ့ ASCII value ကို ျပန္ျပီး ျပမယ္။

using System;
class forlooptest
{
    static void Main()
    {
            string st;
            Console.Write("Enter a string : ");
            st = Console.ReadLine();
            foreach (char c in st)
            {
                Console.WriteLine("{0} = {1}", c, (int)c);
            }
            Console.Read();
    }
}

Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.

%d bloggers like this: