2010年5月26日 星期三

For迴圈

型別 : For迴圈

功能 : 當一段程式碼必須重複執行時可以使用此型別


Example : 從1加到100

using System;
using System.Collections.Generic;
using System.Text;


namespace practice4
{
    class Program
    {
        static void Main(string[] args)
        {
            int Begin = 0;
            const int End = 100;
                       
            int Sum = 0;
            for (Begin = 1; Begin <= End; Begin++)
            {
                if (Begin % 2 != 0) continue;
                Sum += Begin;
                
                if (Begin % 10 == 0)
                    Console.WriteLine
                        ("2 ~ {0}的偶數加總為{1}\t", Begin, Sum);
            
            }


            Console.ReadLine();
        }
    }
}


說明 : 這次要說的是關於迭代當中關於for迴圈的用法,當一個程式碼需要重複的執行並且次數是固定時,便可利用for迴圈來表示,減少程式的複雜度,如上面的例子所示,當我們要寫一個從1加到100的程式時,加法這個動作不斷的被重複執行,因此我們便可利用for迴圈來運算,而for迴圈裡面要特別注意的就是其三段的敘述句,第一個敘述句寫的是此迴圈的初始值,而第二個敘述句寫的則是這段迴圈的範圍,第三個敘述句寫的是當一次迴圈被執行後對於變數所做的動作,這些動作通常都是加一或者是減一,像上面所舉的例子就是作加一的動作,另外要提的就是此程式用了一個跳躍敘述句-continue,這個敘述句的主要的用途就是當我們的變數符合 if 裡面所寫的判斷式時,便會跳出此次的迴圈,再次強調是此次,並不是整個迴圈,如果說要跳出整段迴圈的話,則要使用break敘述句.


迭代 : for , while , do-while , foreach


跳躍敘述句 : continue , return , throw

Demo : 







2010年5月24日 星期一

Switch

型別 : Switch

功能 : 假如一事件有很多種可能,使用此型別作判斷

Example :




using System;
using System.Collections.Generic;
using System.Text;


namespace usingswitch
{
    class Program
    {
        static void Main(string[] args)
        {
            const char LevelA = 'A';
            const char LevelB = 'B';
            const char LevelC = 'C';
            const char LevelD = 'D';
            
            Console.WriteLine("請輸入同學成績 : A,B,C,D");
            char Number = Char.Parse(Console.ReadLine());

            switch (Number)
            { 
                case LevelA :
                    Console.WriteLine("頂尖高手");
                    break;


                case LevelB:
                    Console.WriteLine("高於平均");
                    break;

                case LevelC:
                    Console.WriteLine("等於平均");
                    break;

                case LevelD:
                    Console.WriteLine("不及格");
                    break;

            }

            Console.ReadLine();
           
        }
    }
}




說明 : 

這次主要是介紹有關Switch的用法,當一個事件可能有很多種可能的時候,便可利用Switch來做判斷,就上面的例子而言,必須事先把Number這個變數作分類的動作,以便於在Switch裡作判斷,假如沒有事先分好類,可能會遇到一些麻煩,由於case後面只能放定值(包含常數和字元),不能在後面放判斷式(< , >等),因為我們Switch括號裡面所設的變數為布林值,型別不同,不能做判斷,再來就是每一個case後面要記得加上break,它負責跳出整個Switch執行區塊,因為當一個符合運算式的case執行完畢後,程式依然會繼續往下執行,直到所有case區塊比對完成為止,所以加上break是需要的.

Demo : 


2010年5月18日 星期二

運算子(Operator)

型別 : 運算子

功能 : 輸入數字使其進行數學運算

Example :

using System;
using System.Collections.Generic;
using System.Text;


namespace @operator
{
    class Program
    {
        static void Main(string[] args)
        {
            int X;
            int Y;


            Console.WriteLine("請輸入第一個整數值 X :");
            X = int.Parse(Console.ReadLine());
            Console.WriteLine("請輸入第一個整數值 Y :");
            Y = int.Parse(Console.ReadLine());


            Console.WriteLine("X + Y = {0}", X + Y);
            Console.WriteLine("X - Y = {0}", X - Y);
            Console.WriteLine("X * Y = {0}", X * Y);
            Console.WriteLine("X / Y = {0}", X / Y);


        }
    }
}


說明 : 這次主要為了學習C#上的加減乘除,以及一些C#運算子的用法,要特別注意的是X++和++X的差別,可以從字面上去記,

X++ : 由於++在後面,所以算是先把X儲存到變數再做+1的動作.
++X : 由於++在前面,所以算是先做+1的動作再儲存到變數當中.

當無論是上面哪一個,最後的答案都是一樣的,因為兩者所代表的意思都是X = X + 1,所以最後輸出X的時候,答案會是相同的."="這個符號叫做"設值運算子",會把右邊的運算元儲存到左邊的運算元,而左邊的運算元通常都會是變數.

p.s.此程式有用到一個int型別的轉換函式Parse(),由於我們從鍵盤輸入的為字串,而再C#上作數學運算必須要是同樣的型別,所以才會先把字串轉成整數型別,才能做數學運算.

Demo :

2010年5月17日 星期一

列舉(Enumeration)

型別 : 列舉

功能 : 將一組相同性質整數數值組織成為一組列舉清單

Example :

using System;
using System.Collections.Generic;
using System.Text;


namespace practice
{

class Program
{
enum weekday
{
sun = '一',
mon = '二',
tue = '三',
wed = '四',
tui = '五',
fri = '六',
sat = '七'
}
static void Main(string[] args)
{

Console.WriteLine("星期日為一周的第{0}天\n", (char)weekday.sun);
Console.WriteLine("星期一為一周的第{0}天\n", (char)weekday.mon);
Console.WriteLine("星期二為一周的第{0}天\n", (char)weekday.tue);
Console.WriteLine("星期三為一周的第{0}天\n", (char)weekday.wed);
Console.WriteLine("星期四為一周的第{0}天\n", (char)weekday.tui);
Console.WriteLine("星期五為一周的第{0}天\n", (char)weekday.fri);
Console.WriteLine("星期六為一周的第{0}天\n", (char)weekday.sat);

Console.ReadLine();

}
}
}

C#小技巧

1.輸入mbox之後,再連續案兩次tab鍵,會自動產生messagebox.show("test");
2.區塊註解Ctrl + K + C, 區塊取消註解Ctrl + K + U