iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 3
0
Software Development

高二生_學c#一個月之痛苦,悲哀,感動回憶錄(從基礎控制判斷 goto 物件導向(內含大量圖解))系列 第 3

資料不但能計算還能轉換阿@@

今天我們會進行輸入與輸出與資料型態轉換與計算


先跟大家說聲對不起上篇文章中沒有講解到輸入與輸出

我們來正是進入巴

  • 輸入
代碼名稱 解釋 假設
Console.Read() 取得輸入的第一個字元 我輸入了一行"566"只會紀錄'5'
Console.ReadLine() 取得輸入的一行字串 我輸入了一行"566"只會紀錄"566"
Console.ReadKey() 取得鍵盤按下的按鈕 我對鍵盤按下BD但在我按下B的瞬間程式碼變紀錄了'B'

各位只要記得 Console.ReadLine() 基本上我們也只會用到這個,而 Console.ReadKey() 通常不會使用我們頂多放在最後面當作避免程式結束的末端輸入值

還有各位請記得以後,以後,以後(太重要了!!!要說三次),請記得看到一段後面帶有()的東西都叫做方法(程序導向叫做函式)不是字段(欄位)。

  • 輸出
代碼名稱 解釋 假設
Console.Write() 輸出一段字但不進行換行 我連續用兩次這個方法且在在()裡面打"早安"會變成"早安早安"
Console.WriteLine() 輸出一段字並進行換行 我連續用兩次這個方法且在在()裡面打"早安"會變成"早安
早安"

輸入與輸出大概就到這邊我們來嘗試寫個簡單的輸入與輸出的方式定義一個變數

namespace ConsoleApp1
{
   class Program
   {
       static void Main()
       {
           string 我是字串;//宣告變數
           我是字串 = Console.ReadLine(); //指定變數 為輸入的那一行(請記得按enter)
           Console.WriteLine(我是字串); //在這邊我們印出了這個變數 使用了該變數
           Console.ReadKey(); //讓程序不要關閉
       }
   }
}

由於Console.ReadLine()的回傳值是String所以我們在用別的類型會需要轉換

各位這邊很重要我們會很常需要進行資料類型轉換

我們來製作一個轉換int
轉換方式有很多種
我們先假設我們當前的程式碼

namespace ConsoleApp1
{
   class Program
   {
       static void Main()
       {
           int 我是整數;//宣告變數
           我是整數 = Console.ReadLine(); //在這邊會報錯且不能編譯(運行)因為資料型態的問題
           Console.WriteLine(我是整數); //在這邊我們印出了這個變數 使用了變數
           Console.ReadKey(); //讓程序不要關閉
       }
   }
}

我們來嘗試進行轉換


  • 第一種
    1. int.Parse(轉換的目標)
    2. 把目標轉成int類型
    3. 回傳值為轉換的目標
    4. 如果轉換的值是null(可空類型)會報錯
    5. 如果轉不了直接報錯
  • 第二種
    1. Int32.TryParse(轉換的目標,out 轉換完的目標)
    2. 把目標轉成int類型 並回傳回傳true
    3. 如果轉不了out那邊的int會變成0 回傳false
    4. 回傳bool值
    5. 不會報錯
    6. 如果轉換的值是null(可空類型)out 那邊為0 回傳false
  • 第三種
    1. Convert.ToInt32(轉換的目標)
    2. 把目標轉成int類型(透過裝箱的方式)
    3. 所謂裝箱的方式是指我們不用確定目標的值與類型
    4. 如果轉不了直接報錯
    5. 如果轉換的值是null(可空類型)會回傳0
    6. 筆者通常都是使用此種方式進行轉換
  • 第四種
    1. (int)轉換的目標
    2. 把目標轉成int類型
    3. 這種方式稱為強制類型轉換
    4. 我們只能把小的轉成大的(假設我們今天轉換的是 uint轉int 或是 int轉成float或是int轉成long 或是 把object轉換成class資料型態(這個等物件導向在說明)這些就可以但string不能強制類型轉換成int)
    5. 如果轉換的值是null(可空類型)會報錯
    6. 筆者都是透過這種方式進行轉換
  • 其餘兩種
    1. as與is目前不進行說明因為這用物件導向會比較好教

大致上就是如此 第一種到第三種都是透過方法 進行轉換 第四種例外其餘兩種運算符(運算子) 或許還有其他方式(我不是專業的,還只是個學生)


轉換範例

namespace ConsoleApp1
{
   class Program
   {
       static void Main()
       {
           int 我是整數;//宣告變數
           我是整數 = int.Parse(Console.ReadLine()); //指定變數 為輸入的那一行並進行轉換(請記得按enter)
           Console.WriteLine(我是整數); //在這邊我們印出了這個變數 使用了該變數
           Console.ReadKey(); //讓程序不要關閉
       }
   }
}
namespace ConsoleApp1
{
   class Program
   {
       static void Main()
       {
           int 我是整數;//宣告變數
           bool 是否有錯誤;//判斷正確與錯誤
           是否有錯誤 = int.TryParse(Console.ReadLine(), out 我是整數); //指定變數 為輸入的那一行並進行轉換(請記得按enter)
           Console.WriteLine(我是整數); //在這邊我們印出了這個變數 使用了該變數
           Console.WriteLine(是否有錯誤); //在這邊我們印出了這個變數 使用了該變數
           Console.ReadKey(); //讓程序不要關閉
       }
   }
}
namespace ConsoleApp1
{
   class Program
   {
       static void Main()
       {
           int 我是整數;//宣告變數
           我是整數 = Convert.ToInt32(Console.ReadLine()); //指定變數 為輸入的那一行並進行轉換(請記得按enter)
           Console.WriteLine(我是整數); //在這邊我們印出了這個變數 使用了該變數
           Console.ReadKey(); //讓程序不要關閉
       }
   }
}
namespace ConsoleApp1
{
   class Program
   {
       static void Main()
       {
           int 我是整數 = 52;//宣告變數並指定變數
           long 我是長整數 = (long)我是整數; //進行強制轉換(如果目標沒有被指定過不能強制轉換)
           Console.WriteLine(我是長整數); //在這邊我們印出了這個變數 使用了該變數
           Console.ReadKey(); //讓程序不要關閉
       }
   }
}

十進位計算

通常人看到這邊會一臉茫茫因為為啥要強調十進位呢 其實是因為有分十進位與二進位,二進位留到下次在教

  • 運算符
代碼名稱 意思 解釋 假設
+ 加法 左邊加右邊 5+2=7
- 減法 左邊減右邊 5-2=3
* 乘法 左邊乘與右邊 5*2=10
/ 除法 左邊除與右邊 5/2=2.5(假設使用int 則是2)
% Mod 左邊除與右邊取餘數 5%2=1(5除與2是2...1 這種很好對應上面的int除法)

範例

namespace ConsoleApp1
{
   class Program
   {
       static void Main()
       {
           int 我是整數;//宣告變數
           我是整數 = 1 + 1; //指定變數
           Console.WriteLine(我是整數); //在這邊我們印出了這個變數 使用了該變數
           Console.ReadKey(); //讓程序不要關閉
       }
   }
}

假設我們要自己=自己+值呢呢

namespace ConsoleApp1
{
   class Program
   {
       static void Main()
       {
           int 我是整數 = 0;//宣告變數(記得先指定一個值下面才能指定到自己)
           我是整數 = 我是整數 + 1; //指定變數
           Console.WriteLine(我是整數); //在這邊我們印出了這個變數 使用了該變數
           Console.ReadKey(); //讓程序不要關閉
       }
   }
}

這種寫法很差可以使用

代碼名稱 意思 解釋 實際上
+= 加法 自己加右邊 a=a+2
-= 減法 自己減右邊 a=a-2
*= 乘法 自己乘與右邊 a=a*2
/= 除法 自己除與右邊 a=a/2
%= Mod 自己除與右邊取餘數 a=a%2

範例

namespace ConsoleApp1
{
    class Program
    {
        static void Main()
        {
            int 我是整數 = 0;//宣告變數(記得先指定一個值下面才能指定到自己)
            我是整數 += 1; //指定變數
            Console.WriteLine(我是整數); //在這邊我們印出了這個變數 使用了該變數
            Console.ReadKey(); //讓程序不要關閉
        }
    }
}

假設是自己+1或自己-1則不要使用上面兩種寫法都很爛請用下面這種寫法

代碼名稱 意思 解釋
a++ 自己加一 後加
++a 自己加一 先加
a-- 自己減一 後減
--a 自己減一 先減

範例

namespace ConsoleApp1
{
    class Program
    {
        static void Main()
        {
            int 我是整數 = 0;//宣告變數(記得先指定一個值下面才能指定到自己)
            Console.WriteLine(我是整數++); //印完值0在+1
            Console.WriteLine(我是整數); //印出值1因為上面已經值加1
            Console.ReadKey(); //讓程序不要關閉
        }
    }
}
namespace ConsoleApp1
{
    class Program
    {
        static void Main()
        {
            int 我是整數 = 0;//宣告變數(記得先指定一個值下面才能指定到自己)
            Console.WriteLine(++我是整數); //先值+1在印出值1
            Console.WriteLine(我是整數); //印出1因為上面已經值加1
            Console.ReadKey(); //讓程序不要關閉
        }
    }
}

明天再繼續(二進位 與 判斷)
預計星期六日先沖一點時間到在發一波


上一篇
資料類型之你好多阿
下一篇
竟然還有二進位花惹發
系列文
高二生_學c#一個月之痛苦,悲哀,感動回憶錄(從基礎控制判斷 goto 物件導向(內含大量圖解))7
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言