[技術類 – C# 學習誌 – C#面試考題 ] 陣列類別常用成員、字串類別常用成員

• 常用屬性
– Rank–陣列的維度大小
– Length–陣列元素個數
• 常用方法
– GetLength–回傳某一維度的長度
– Clone–複製陣列內容至一新陣列實體  (不會複製參考所參考的物件)
• 靜態方法
– Sort–排序陣列元素
– IndexOf–回傳第一個符合參數值的索引位置
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] x = new int[2, 3];
            Console.WriteLine(“Length︰" + x.Length);
            Console.WriteLine(“Rank︰" + x.Rank);
            Console.WriteLine(“GetLength(0)︰" +
            x.GetLength(0));
            Console.WriteLine(“GetLength(1)︰" +
            x.GetLength(1));
            car[] myCar = new car[5];
            for (int i = 0; i < myCar.Length; i++)
            {
                myCar[i] = new car();
                myCar[i].id = i;
            }
            Console.WriteLine();
            car[] b = (car[])myCar.Clone();  //Clone過來是object,必須做型別轉換!
            //– 建立一個型別為int 的一維陣列,內含10 個元素,元素值利用亂數來決(1~10)
            //– 請使用者輸入一個數字(1~10)
            //– 列印出陣列當中是否包含該數字,若有則列印該數字在陣列當中的位置
            //– 最後將陣列中所有元素列印出來
            int[] my_input = new int[10];
            Random rnd = new Random();
            for (int i = 0; i < my_input.Length; i++)
            {
                int a = rnd.Next(1, 11);
                my_input[i] = a;
            }
            Console.WriteLine(“請輸入一個數字(1~10)");
            int user_input = int.Parse(Console.ReadLine());
            if (Array.IndexOf(my_input, user_input) < 0)  //IndexOf:沒有則回傳-1
            {
                Console.WriteLine(“陣列中沒有您剛剛輸入的數字!");
            }
            else  //IndexOf:有則回傳位置
            {
                Console.WriteLine(“該數字在陣列當中的位置:" + Array.IndexOf(my_input, user_input));
            }
            for (int i = 0; i < my_input.Length; i++)
            {
                Console.WriteLine(my_input[i]);
            }
            Console.ReadLine();
        }
    }
    class car
    {
        public int id;
    }
}
——————————————————————————————————————–
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = “Alice is a good student!!";
            Console.WriteLine(str);
            Console.WriteLine(“ToUpper︰" + str.ToUpper());
            Console.WriteLine(“ToLower︰" + str.ToLower());
            Console.WriteLine(“Insert︰" + str.Insert(6, “Wang “));
            string[] strArray = str.Split(‘ ‘);
            for(int i=0; i<strArray.Length; i++)
            {
                Console.WriteLine(strArray[i]);
            }
            //– 請使用者輸入多個整數值(以逗號區隔)
            //– 列印輸入的整數值總和
            Console.WriteLine(“請輸入多個整數值(以逗號區隔)");
            string[] user_Array = Console.ReadLine().Split(‘,’);
            int[] all_num = new int[user_Array.Length];
            for(int i=0; i<user_Array.Length; i++)
            {
                all_num[i]= int.Parse(user_Array[i]);
            }
            int all_sum = all_num.Sum();
            Console.WriteLine(“輸入的整數值總和:" + all_sum);
            Console.ReadLine();
        }
    }
}
——————————————————————————————————————–
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            //– 請使用者輸入一年份
            //– 列印該年是否為閏年
            Console.WriteLine(“請輸入一個年份");
            int user_input = int.Parse(Console.ReadLine());
            if (DateTime.IsLeapYear(user_input)==true)
            {
                Console.WriteLine(“是閏年");
            }else{
                Console.WriteLine(“不是閏年");
            }
            Console.ReadLine();
        }
    }
}
廣告

[技術類 – C# 學習誌 – C#面試考題 ] 建構式(Constructor)、this 關鍵字、遞迴、ArrayList

• 建構式(Constructor)
– 建構式在類別實體物件建立前即會執行,用來初始化物件
– 建構式的名稱一定要和類別名稱一樣
– 建構式與方法相同允許多載

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            car a = new car(3,5);
        }
    }
    class car
    {
        public int showID()
        {
        }
        public int id;
        public int speed;
        public car(int id,int speed)  //這是建構式(Constructor),
        {
            this.id = id;  //this 不能用在STATIC裡面
            this.speed = speed;
        }
        public void accelerate(int x)
        {
            this.speed++;
        }
        public static void findcar()
        {
        }
    }
}
——————————————————————————————————

• 遞迴是一種本身呼叫自己的方法
• 利用遞迴可以提供較為簡潔的方法進行數學運算
• 遞迴程式中,必須撰寫令遞迴結束執行的程式碼

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }
    class math
    {
        //遞迴:遞迴是一種本身呼叫自己的方法
        //利用遞迴可以提供較為簡潔的方法進行數學運算
        //遞迴程式中,必須撰寫令遞迴結束執行的程式碼
        //sum(1~x)
        //sum(x)=x+sum(x-1)
        //sum(1)=1;
        public static int sum(int x)
        {
            if (x == 1)
                return 1;
            return sum(x – 1) + x;
        }
    }
}
——————————————————————————————————
• ArrayList 概念
• 使用陣列時我們必須先設定好陣列的大小才可以使用,相當不方便
• ArrayList 屬於集合,集合大小會隨資料量大小動態改變
• 命名空間: System.Collections;
• 常用屬性: Count–實際包含的元素個數
• 常用方法
– Add–將物件加入至末端
– Insert–將物件插入至指定位置
– Remove–移除第一個符合指定物件的元素
– Clear–清除所有元素
– Sort–以遞增方式排序元素
– Reverse–將元素次序反轉
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            ArrayList myAL = new ArrayList();
            car myCar = new car(10);
            myAL.Add(12);
            myAL.Add(“ives");
            myAL.Add(myCar);
            Console.WriteLine(“myAL[{0}]︰{1}", 0, myAL[0]);
            Console.WriteLine(“myAL[{0}]︰{1}", 1, myAL[1]);
            Console.WriteLine(“myAL[{0}]︰{1}", 2, ((car)myAL[2]).id);
            ((car)myAL[2]).id = 100;
            Console.WriteLine(“myCar︰" + myCar.id);
        }
    }
    class car
    {
        public car(int x)
        {
            id = x;
        }
        public int id;
    }
}
——————————————————————————————————
• ArrayList 練習:
• 請使用者輸入正整數資料(不限筆數)
• 當使用者輸入為負數停止
• 將使用者輸入的資料排序後列印至螢幕
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            ArrayList myAL = new ArrayList();
            while (true)    //不確定使用者會輸入幾個正整數,因此用while
            {
                int x = int.Parse(Console.ReadLine());
                if (x > 0)
                    myAL.Add(x);
                else
                    break;  //輸入負數就跳出
            }
            myAL.Sort();  //ArrayList 排序
            foreach (int x in myAL)
            {
                Console.WriteLine(x);  //印出ArrayList
            }
            Console.ReadLine();
        }
    }
}

[技術類 – C# 學習誌 – C#面試考題 ] 物件、類別、方法多載、 static 靜態方法

• 類別主要的功能是用來描述定義物件的模樣
• 類別主要包含下列成員
– 欄位(field)
– 屬性(property)
– 方法(method)
– 事件(event)
——————————————————————————————————
一個程式檔案裏面只能有一個main
namespace 底下可以有 namespace
class 底下可以有 class
——————————————————————————————————
class 分為 :   instance and static

使用 instance member 需要實體化, 跟著物件存在一起, 有幾個物件就有幾個
使用 static member 不需要實體化, 它自始就存在 (只能有一份,就像 main 一樣, 一個程式檔案裏面只能有一個main )(用 class name 呼叫即可)

• 類別中的靜態成員不需要產生實體物件即可直接存取引用
• 靜態成員必須使用static 關鍵字進行宣告
• 引用靜態成員方式,直接使用類別名稱再利用"." 連接靜態成員名稱即可
• Main 就是一個靜態方法成員

——————————————————————————————————
• 欄位為類別中所定義的各種資料型別變數
• public– 任何外部類別都可不受限制存取此類別成員
• private– 此類別成員只能在此類別中使用
• protected– 此類別成員可在此類別及繼承此類別的子類別使用
• internal– 在同一個組件中都可存取此類別成員
• protected internal– 提供protected 及internal 二種存取方式

• 屬性用來存取類別的欄位值
• 實體物件一樣可透過"." 來存取屬性資料
• 語法:

存取修飾詞 資料型別 屬性名稱
{
get
{
return 欄位名稱;
}
set
{
欄位名稱= value;
}
}

注意: 我們可以只設定get 部份讓該屬性成唯讀屬性 (只能取得)

——————————————————————————————————

• 方法多載允許我們將傳入參數不同的方法,定義成相同的名稱
• 當我們在定義二數相加的方法時,藉由方法多載可讓我們不需定義二個不同名稱的方法,以區隔為二個整數相加或二個浮點數相加

——————————————————————————————————
以下程式, 可貼入 visual studio 進行練習與測試, 包含今天上面所說的概念 (物件、類別、方法多載、 static 靜態方法):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Caculator
    {
        //方法多載 – C# 允許有同名的方法, 但是傳入值必須不同
        public int add(int x, int y)
        {
            return x + y;
        }
        public int add(int x, int y,int z)
        {
            return x + y + z;
        }
    }
    class math
    {
        //方法多載 – C# 允許有同名的方法, 但是傳入值必須不同
        public static int max(int x, int y)
        {
            return Math.Max(x, y);
        }
        public static int max(int x, int y, int z)
        {
            int[] array1 = { x,y,z };
            int max = array1.Max();
            return max;
        }
    }
    public class console
    {
        static public string query(string a)
        {
            Console.WriteLine(a);
            return Console.ReadLine(); //以使用者輸入的為答案並傳回
        }
    }
    class Program
    {
        static void Main(string[] args)   //Main 即為一個 static 靜態方法
        {
            Car a = new Car();  //產生實體  //a 牽連著一個物件
            a.id = Console.ReadLine();
            Console.WriteLine(a.id);
            a.acclerate(30,"haha",2.0); //加速 – 需傳入三個值
            Car b = new Car();  //產生實體  //b 牽連著一個物件
            b.speed = int.Parse(Console.ReadLine());
            Console.WriteLine(b.speed);
            empolyee c = new empolyee();  //產生實體
            Console.WriteLine(“請輸入底薪");
            c.baseSalary = int.Parse(Console.ReadLine());
            Console.WriteLine(“請輸入獎金");
            c.benefit = int.Parse(Console.ReadLine());
            Console.WriteLine(“每月薪水為:");
            Console.WriteLine(c.salary);
            Console.ReadLine();
            Caculator d = new Caculator();  //產生實體
            d.add(3,4);
            int age = int.Parse(console.query(“你幾歲?"));
            int max_value = math.max(15, 255, 31);  //math.max 傳回最大數
            Console.WriteLine(max_value);
            Console.ReadLine();
            //new Car()
            //1.產生一個物件 (在記憶體中實體化)
            //2.一個class(藍圖),可以產生很多個物件(實體)
            //Car[] c = new Car[10];
            //a.color
            //b.id
            //c.acclerate
        }
    }
    /*
     * 類別功能練習:
     * 建立empolyee 類別
     * 類別中含有baseSalary、salary 及benefit屬性
     * baseSalary 屬性必須大於等於0
     * salary 為唯讀屬性,其值為baseSalary 加上benefit
     * 程式功能:
     * 主程式中請使用者輸入底薪及獎金值
     * 列印出類別salary 屬性值
     */
    public class empolyee
    {
        //類別中含有baseSalary、salary 及benefit屬性
        public int baseSalaryField;
        public int benefitField;
        public int baseSalary
        {
            get
            {
                return baseSalaryField;
            }
            set
            {
                if (value > 0)
                    baseSalaryField = value;
            }
        }
        public int benefit
        {
            get
            {
                return benefitField;
            }
            set
            {
                if (value > 0)
                    benefitField = value;
            }
        }
        public int salary  //唯讀:只有get,沒有set(不能存)
        {
            get
            {
                return baseSalaryField + benefitField;
            }
        }
    }
    public class Car
    {
       /*性質:  1. Field
        *       2. Property
        *       Ex: color,id;
        *
        */
        private int num;  //預設是protected
        private string idField; //idField 不對外,為private
        public string id
        {
            get
            {
                return idField;
            }
            set
            {
                idField = value;
            }
        }
        private int speedField;
        public int speed
        {
            get
            {
                return speedField;
            }
            set
            {
                if (value < 0)
                    speedField = 0;
                else if (value > 100)
                    speedField = 100;
                else
                    speedField = 100;
            }
        }
        /*能力:
        *       3. Method
        *       Ex: acclerate;
        */
        public int acclerate(int inc,string b,double c)  //加速 //傳入值為: int inc, 可以傳入多個值,每個都需要傳入
        {
            speedField += inc;
            return speedField;
        }
        /*被動:
        *       4. Event
        *       Ex: accident;
        *
        *
        */
    }
}

[技術類 – C# 學習誌 – C#面試考題 ] 陣列、重複結構流程控制、巢狀迴圈

break and continue 的概念.

􀁹 break : 在for 執行迴圈中,若遇到break 陳述句時,會立即逃離迴圈
􀁹 continue : 在for 執行迴圈中,若遇到continue 陳述句時,會立即跳至遞增值部份
——————————————————————————————————
//程式功能 :登入系統 (練習break概念)
//請使用者輸入密碼
//輸入密碼為ives 則允許登入
//容許三次登入機會
const string pw = “1234″;  //設定密碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            const string pw = “1234″;  //設定密碼
            for (int i = 0; i < 3; i++)
            {
                Console.Write(“請輸入您的密碼");
                if (pw == Console.ReadLine())
                {
                    Console.WriteLine(“登入成功");
                    break;
                }else if(i==2)
                    Console.WriteLine(“輸入錯誤已達三次");
                else
                    Console.WriteLine(“密碼錯誤,請再輸入一次");
            }
        }
    }
}
——————————————————————————————————
//程式功能 :  讓使用者輸入x, 列印出1~10 間不含x 的所有數 (練習continue概念)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write(“請輸入一個1~10之間的數字");
            int n_input = int.Parse(Console.ReadLine());
            for (int i = 1; i <= 10; i++)
            {
                if (i == n_input)
                {
                    continue;
                }else{
                    Console.WriteLine(i);
                }
            }
            Console.ReadLine();
        }
    }
}
——————————————————————————————————
//while 概念
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            while (true)  //無窮迴圈
            {
                if (!C1)  //條件很複雜時,可以寫在IF這邊 表列多個條件,而不一定要寫在while裡面
                    break;
            }
            Console.ReadLine();
        }
    }
}
——————————————————————————————————
//while 概念
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //輸入資料
            Console.Write(“請輸入一整數︰");
            int x = int.Parse(Console.ReadLine());
            int sum = 0, i = 0;
            while (true)
            {
                sum += ++i;
                if (sum > x)
                {
                    i++;
                    break;
                }
            }
            Console.WriteLine(“1 +…+ " + i + " 才會大於" + x);
            Console.WriteLine(“輸入quit 離開程式..");
            while (“quit" != Console.ReadLine()) ;
        }
    }
}
——————————————————————————————————
//while 概念 : 階乘計算
//輸入x
//列印出x! 的值
//while 概念
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //輸入資料
            Console.Write(“請輸入一個數字︰");
            int x = int.Parse(Console.ReadLine());
            int product = 1, i = 0;
            while (true)
            {
                product *= ++i;
                if (i == x)
                {
                    break;
                }
            }
            Console.WriteLine(product);
            Console.ReadLine();
        }
    }
}
——————————————————————————————————
//do  while 概念
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Random rnd = new Random(); //亂數宣告->不要放在 do迴圈裏面宣告!!這樣才能在亂數表上隨意跳動
            //執行遊戲
            do    //自己能夠確定執行次數時,使用for, 但是這個例子並不確定會執行幾次(跟使用者的回答有關係)
            {
            Console.Write(“請輸入一個數字(1~3之間)︰");
            if (rnd.Next(1, 4) == int.Parse(Console.ReadLine()))
                Console.WriteLine(“您好厲害猜中了!!");
            else
                Console.WriteLine(“哈哈哈!! 沒猜中!!");
                Console.Write(“再玩一遍嗎? (y/n)");
            } while (Console.ReadLine() == “y");
        }
    }
}
——————————————————————————————————
//do  while 概念
// 判斷輸入值是否在0 ~ 100 間
// 輸入x
// 若x 的值不在範圍內,請使用者重新輸入
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            do    //自己能夠確定執行次數時,使用for, 但是這個例子並不確定會執行幾次(跟使用者的回答有關係)
            {
            Console.Write(“請輸入一個數字(沒有區間限制)︰");
            int n_input = int.Parse(Console.ReadLine());
            if (n_input >= 0 && n_input<=100)
            {
                Console.WriteLine(“符合規範的數字!!");
                break;
            }else{
                Console.WriteLine(“不行ㄟ!!請重新輸入");
            }
            } while (true);
            Console.ReadLine();
        }
    }
}
——————————————————————————————————

//巢狀迴圈: 這個會執行100次

for (int i=0; i<10; i++)
{
    for (int j=0; j<10; i++)
    {
    }
}
——————————————————————————————————
//列印九九乘法表
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //列印九九乘法表
            for (int i = 1; i <= 9; i++)
            {
                for (int j = 1; j <= 9; j++)
                {
                    Console.Write(i + “*" + j + “=" + (i * j) + “\t");
                }
                Console.WriteLine();
            }
            Console.ReadLine();
        }
    }
}
——————————————————————————————————
//輸入x
//列印出邊長為x 的實心正方形
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //輸入資料
            Console.Write(“請輸入x 的值︰");
            int x = int.Parse(Console.ReadLine());
            //列印正方形
            for (int i = 0; i < x; i++)
            {
                for (int j = 0; j < x; j++)
                {
                    Console.Write(“*");
                }
                Console.WriteLine(); //換行動作
            }
            Console.ReadLine();
        }
    }
}
——————————————————————————————————
//列印 空心正方形
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //輸入資料
            Console.Write(“請輸入x 的值︰");
            int x = int.Parse(Console.ReadLine());
            //列印 空心正方形
            for (int i = 0; i < x; i++)
            {
                for (int j = 0; j < x; j++)
                {
                    if(j==0 || i==0 || i==x-1 || j==x-1)
                    Console.Write(“*");
                    else
                    Console.Write(" “);
                }
                Console.WriteLine(); //換行動作
            }
            Console.ReadLine();
        }
    }
}
——————————————————————————————————

//輸入x (奇數)

//列印出長寬為x 的十字形圖案
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //輸入資料
            Console.Write(“請輸入x 的值(奇數)︰");
            int x = int.Parse(Console.ReadLine());
            for (int i = 0; i < x; i++)
            {
                for (int j = 0; j < x; j++)
                {
                    if(j == x/2 || i ==x/2)
                    Console.Write(“*");
                    else
                    Console.Write(" “);
                }
                Console.WriteLine(); //換行動作
            }
            Console.ReadLine();
        }
    }
}
——————————————————————————————————
c# 宣告陣列語法
􀁹 資料型別[ ] 陣列名稱= new 資料型別[陣列大小];
􀁹 一維陣列用法
􀁹 int[] myArray = new int[10];
􀁹 string[] studentName = new string[100];
􀁹 int[] a = new int[5] {0,1,2,3,4};
􀁹 二維陣列用法
􀁹 int[,] b = new int[2,3];
􀁹 int[,] c = new int[2,3] {{1,2,3},{4,5,6}};
——————————————————————————————————
// 宣告一個二維陣列
// 將陣列內容一筆筆的列印出來
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] myArray = new int[2, 3] { { 1, 2, 3 }, { 4, 5, 6 } };
            for (int i = 0; i < 2; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    Console.WriteLine(“({0},{1})︰{2}", i, j, myArray[i, j]);
                }
            }
            Console.ReadLine();
        }
    }
}
——————————————————————————————————
// 陣列的練習
// 輸入要處理的數字個數
// 輸入所有要處理的數
// 選擇要進行的計算(加法、乘法)
// 列印結果
// 利用陣列記錄使用者輸入的數字
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(“輸入要處理的數字個數");
            int x = int.Parse(Console.ReadLine());
            int[] a = new int[x];
            for (int i = 0; i < x; i++)
            {
                Console.WriteLine(“輸入數字");
                a[i] = int.Parse(Console.ReadLine());
            }
            Console.WriteLine(“選擇要進行的計算(加法、乘法)");
            string op = Console.ReadLine();
            int sum = 0;
            int product =1;
            if(op=="+")
            {
                for (int i = 0; i < x; i++)
                {
                sum+= a[i];
                }
                Console.WriteLine(“計算結果:" + sum);
            }
            else if(op=="*")
            {
                for (int i = 0; i < x; i++)
                {
                product*= a[i];
                }
                Console.WriteLine(“計算結果:" + product);
            }
            Console.ReadLine();
        }
    }
}
——————————————————————————————————

//當我們需要一筆一筆讀取(無法儲存) 陣列的內容時,可利用foreach 迴圈來簡化程式

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] arrayA = new int[5] { 10, 1, 2, 3, 4 };
            //列印資料 -> foreach不能改變值 (要改變值 只能用for迴圈)
            foreach (int a in arrayA)
            {
                Console.WriteLine(a);
            }
            string[] studentName = new string[4] { “Alice", “Bob", “Ives", “John" };
            //列印資料 -> foreach不能改變值 (要改變值 只能用for迴圈)
            foreach (string name in studentName)
            {
                Console.WriteLine(name);
            }
            //請使用者輸入五位學生姓名
            //將五名學生資料列印出
            //利用for 迴圈將學生姓名儲存於陣列中
            //利用foreach 迴圈列印迴圈資料
            string[] studen_input_Name = new string[4];
            for (int i = 0; i < 4; i++)
            {
                studen_input_Name[i] = Console.ReadLine();
            }
            //列印資料 -> foreach不能改變值 (要改變值 只能用for迴圈)
            foreach (string name2 in studen_input_Name)
            {
                Console.WriteLine(name2);
            }
                Console.ReadLine();
        }
    }
}
——————————————————————————————————

[技術類 – C# 學習誌 – C#面試考題 ] 變數、資料型態、運算子 之二

// 程式功能 : 計算三角形面積
// 先列印出二行文字請使用者輸入三角形的底及高(整數)
// 計算後列印出三角形的面積大小

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //程式有多種作法
            Console.WriteLine(“請輸入三角形的底及高");
            int a = int.Parse(Console.ReadLine());
            int b = int.Parse(Console.ReadLine());
            Console.WriteLine(“結果是:" + ((double)(a*b)/2));
            //string botom = Console.ReadLine();
            //string height = Console.ReadLine();
            //int Answer = int.Parse(botom) * int.Parse(height) / 2;
            //Console.WriteLine(“結果是:" + Answer);
            Console.ReadLine();
        }
    }
}
——————————————————————————————————————–
// 輸入二個數字
// 列出二數之前的關係 (比較子)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //輸入二數
            Console.Write(“輸入第一個數字:");
            int i = int.Parse(Console.ReadLine());
            //列出結果
            Console.WriteLine(i + " == " + j + " 的結果為" + (i == j));
            Console.WriteLine(i + " != " + j + " 的結果為" + (i != j));
            Console.WriteLine(i + " > " + j + " 的結果為" + (i > j));
            Console.WriteLine(i + " < " + j + " 的結果為" + (i < j));
            Console.WriteLine(i + " >= " + j + " 的結果為" + (i >= j));
            Console.WriteLine(i + " <= " + j + " 的結果為" + (i <= j));
            Console.ReadLine();
        }
    }
}
——————————————————————————————————————–
// 先請使用者輸入一個數字
// 判斷該數字是否大於5
// 大於5 則列印true ,否則列印false
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //輸入數字
            Console.Write(“輸入數字:");
            int i = int.Parse(Console.ReadLine());
            //列出結果
            Console.WriteLine(i + “>5 的結果為" + (i > 5));
            Console.ReadLine();
        }
    }
}
——————————————————————————————————————–
// 計算正方形面積
// 請使用者輸入正方形邊長(整數)
// 計算後列印出正方形面積大小
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //輸入數字
            Console.Write(“輸入數字:");
            int area = int.Parse(Console.ReadLine());
            area *= area;
            //列出結果
            Console.WriteLine(“正方形面積為" + area.ToString());
            Console.ReadLine();
        }
    }
}
——————————————————————————————————————–
// 遞增與遞減 之概念
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = 0;
            int j;
            j = 3 + i++;
            Console.WriteLine(j);
            Console.WriteLine(i);
            //此時結果 j:3  i:1
            j = 3 + ++i;
            Console.WriteLine(j);
            Console.WriteLine(i);
            //此時結果 j:5  i:2
            Console.ReadLine();
        }
    }
}
——————————————————————————————————————–
// 遞增與遞減之概念
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = 10, j = 0, x = 10, y = 0;
            j += ++i;
            Console.WriteLine(“i =" + i + “, j = " + j);
            //i:11  j:11
            y += x++;
            Console.WriteLine(“x =" + x + “, y = " + y);
            //x:11 y:10
            Console.WriteLine(“x =" + x++); // How about ++x ? => x:12
            //x:11
            Console.WriteLine(“x =" + x);
            //x:12
            Console.ReadLine();
        }
    }
}
——————————————————————————————————————–
// 計算圓面積
// 請使用者輸入圓半徑(整數)
// 計算後列印出圓形面積大小
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            const double pi = 3.1415926;
            double n1 = double.Parse(Console.ReadLine());
            double area = n1 * n1 * pi;
            Console.WriteLine(“圓形面積大小為:"+area.ToString());
            Console.ReadLine();
        }
    }
}
——————————————————————————————————————–

//  列舉型別 1 – 列舉型別不可以在方法內宣告

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            language my_a = language.French;
            Console.WriteLine(“my_a為:" + my_a);
            long a = (long)language.French;
            Console.WriteLine(“a為:" + a);
            Console.ReadLine();
        }
        enum language : long
        {
            English = 0,  //左邊是symbol , 右邊是value
            Chinese = 1,  //左邊是symbol , 右邊是value
            French = 2,  //左邊是symbol , 右邊是value
            Japanease = 3  //左邊是symbol , 右邊是value
        }
    }
}
——————————————————————————————————————–
// 列舉型別 2 – 列舉型別不可以在方法內宣告
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        enum studentID : int
        {
            alice = 12,
            bob = 24
        }
        static void Main(string[] args)
        {
            Console.WriteLine(studentID.alice + " 的座號為: " +
            (int)studentID.alice);
            Console.WriteLine(studentID.bob + " 的座號為: " +
            (int)studentID.bob);
            Console.WriteLine(“座號12 號的是: " + (studentID)12);
            Console.WriteLine(“座號24 號的是: " + (studentID)24);
            Console.ReadLine();
        }
    }
}
——————————————————————————————————————–
//  列舉型別 3 – 列舉型別不可以在方法內宣告
// 列印出星期一到日各為一星期的第幾天
// 以星期日為第一天
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        enum which_day : int
        {
            sunday = 1,
            monday = 2,
            tuesday = 3,
            wednesday = 4,
            thursday = 5,
            friday = 6,
            saturday = 7
        }
        static void Main(string[] args)
        {
            Console.WriteLine(which_day.sunday + " 為第: " + (int)which_day.sunday + “天");
            Console.WriteLine(which_day.monday + " 為第: " + (int)which_day.monday + “天");
            Console.WriteLine(which_day.tuesday + " 為第: " + (int)which_day.tuesday + “天");
            Console.WriteLine(which_day.wednesday + " 為第: " + (int)which_day.wednesday + “天");
            Console.WriteLine(which_day.thursday + " 為第: " + (int)which_day.thursday + “天");
            Console.WriteLine(which_day.friday + " 為第: " + (int)which_day.friday + “天");
            Console.WriteLine(which_day.saturday + " 為第: " + (int)which_day.saturday + “天");
            Console.ReadLine();
        }
    }
}
——————————————————————————————————————–

// 利用struct 建立student 基本資料

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        struct student  //struct結構   //新宣告的type – 下面那三個欄位,相關性很高,可一次宣告就好
        {
            public string name;  //一種欄位
            public int ID;  //一種欄位
            public int age;  //一種欄位
        }
        static void Main(string[] args)
        {
            student new_student;  //student 為 struct結構
            new_student.age = 25;
            new_student.ID = 99;
            new_student.name = “Anson";
            Console.WriteLine(“學生姓名: " + new_student.name + “\n" + “學生ID: " + new_student.ID);
            Console.ReadLine();
        }
    }
}
——————————————————————————————————————–
// 利用結構自訂通訊錄資料型態
// 列印三行請使用者輸入姓名、年齡及電話
// 輸入完後列印出使用者的相關資料
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        struct student  //struct結構   //新宣告的type – 下面那三個欄位,相關性很高,可一次宣告就好
        {
            public string name;  //一種欄位
            public int age;  //一種欄位
            public string tel;  //一種欄位
        }
        static void Main(string[] args)
        {
            student new_student;  //student 為 struct結構
            Console.WriteLine(“請輸入姓名: “);
            new_student.name = Console.ReadLine();
            Console.WriteLine(“請輸入年齡: “);
            new_student.age = int.Parse(Console.ReadLine());
            Console.WriteLine(“請輸入電話: “);
            new_student.tel = Console.ReadLine();
            Console.WriteLine(“資料為:\n 姓名:" + new_student.name + “\n 年齡:" + new_student.age + “\n 電話:" + new_student.tel);
            Console.ReadLine();
        }
    }
}
——————————————————————————————————————–
// 亂數之概念
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Random rnd = new Random();
            int a =rnd.Next(3, 10);  //產生3~9之間的亂數  //亂數的值會大於等於最小值,小於最大值
            Console.WriteLine(a);
            //先用亂數產生一個1 ~ 3 之間的數
            //讓使用者輸入一個數字
            //使用者猜對則列印true 猜錯印出false
            Random rnd2 = new Random();
            int b = rnd.Next(1, 4);   //亂數的值會大於等於最小值,小於最大值
            Console.WriteLine(“請輸入一個1~3之間的數字");
            int c = int.Parse(Console.ReadLine());
            Console.WriteLine(b==c); //先不用寫 if else…
            Console.ReadLine();
        }
    }
}