Skip to main content

🤖 核心的數據成員~變數(一)

變數的世界

在 C#世界中,基本上大家都希望有自己的歸屬感,所以他們都會被賦予一個的種族, 這也是所謂的強型別語言擁有的特性。 我們待會會跟各位介紹常見的種族,正是所謂的變數型別

我們在這世界無論或大或小都會有一個棲身之處,也許是皇宮或者是天橋下,總有個地方讓我們睡覺, 變數也是一樣的,它們在電腦世界中無論如何最終會有一個記憶體內存供他們容身。

數字類型的變數

  • 數字類型的變數是變數中人口最多的種族了,當然他們底下也細分成很多種族群

整數變數

  • 整數這東西是人類在歷史上最早掌握的數字,我們來套用一個古人的名言:

    “1”是數的第一原則,萬物之母,也是智慧;

    “2”是對立和否定的原則,是意見;

    “3”是萬物的形體和形式;

    “4”是正義,是宇宙創造者的象徵;

    “5”是奇數和偶數,雄性與雌性和結合,也是婚姻;

    “6”是神的生命,是靈魂;

    “7”是機會;

    “8 ”是和諧,也是愛情和友誼;

    “9”是理性和強大;

    “10”包容了一切數目,是完滿和美好。

    --畢達哥拉斯

  • 沒錯這就是標榜"萬物皆數"的畢達哥拉斯,他讓我們了解到生活上處處都存在著整數的運算
  • 接下來我們就心動不如馬上行動,來看看 C#世界中的整數吧!
  1. 首先我們剛剛有說過,當一個變數出生前,我們就得先給他們個種族(類型)
  2. 那麼整數的種族標誌就是 int
  3. 當一個變數被賦予 int 之後,他就擁有一個家族使命,並馬上獲得他的領土(內存中 4 個 Byte 的空間)
  4. 但因為剛剛才出生,所以什麼都不會,就如同一張白紙一樣(默認預設值 0)
  • 明白整數的身世之謎後我們來他玩玩吧!
  • 題目: 阿嬤到菜市場買菜,買了一根 50 元的蘿蔔跟 70 元的豬肉,請問阿嬤在未殺價的情況下給了攤主多少錢呢?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CsharpDemo
{
class Program
{
static void Main(string[] args)
{
//首先要來一個型態為整數的蘿蔔變數
int radish;
//再來個型態為整數的豬肉變數
int pork;
//此時阿嬤問攤主蘿蔔多少錢,攤主告訴阿嬤50元
//我們就可以讓蘿蔔變成50元
radish = 50;
//這時阿嬤又問攤主豬肉多少錢,攤主告訴阿嬤70元
//我們就可以就來讓豬肉變成70元
pork = 70;
//阿嬤為了計算方便就先把價錢寫下來了
Console.WriteLine("蘿蔔 " + radish + "元 ,豬肉 " + pork + "元");
//這時候店家拿出計算機按給阿嬤看
int computer = radish + pork;
//阿嬤看按計算機上面寫的價錢,就從錢包拿出錢給攤販開心回家了
Console.WriteLine("計算機畫面 => " + radish + " + " + pork + " = " + computer);
Console.ReadKey();
}

}
}

執行:我們可以按快捷鍵(Ctrl+F5)或是點選功能列的開始執行程式

蘿蔔 50 元 ,豬肉 70 元\ 計算機畫面 => 50 + 70 = 120

知識小學堂

  • 這就是所謂的整數變數 mdImg
  • 這邊是整數的家,在內存中佔了 4Byte,也就是 32bit mdImg

其他整數類型

  • short 型(短整數) : 這種類型只會分配到 2 個 byte,他值範圍為-32768~32768
  • long 型(長整數) : 他擁有 8 個 byte,值的範圍則是-9223372036854775808~9223372036854775807 如果我們在short與long前面看到一個英文字母u,他則是無符號的型別ushort,ulong,他們這種族的世界中,是沒有負面情緒的,是個十分樂觀的種族,所以他們只有正數,沒有負數

現在我們來歸納一下整數類型吧

C#類型值的範圍中文名稱
byte0 ~ 255字節
short-32768 ~ 32767短整數
ushort0 ~ 65535無號短整數
int-2147483648 ~ 2147483647整數
uint0 ~ 4294967295無號整數
long-9223372036854775808~9223372036854775807長整數
ulong0 ~ 18446744073709551615無號長整數

注意:如果使用超出這些範圍外,我們將它稱為溢位,程式會出錯, 所以我們使用前應該要先想好會用到多大的數值,別宣告太小導致溢位, 也別宣告太大而佔用內存空間

浮點數執行別變數

  • 什麼是浮點數呢?浮點數就是所謂的小數
  • 有時候整數的運算,已經無法滿足我們的需求,所以 C#中也有小數的運算

小數最常見有三種類型

C#類型值的範圍準確率
float±1.5 x 10−45 ~ ±3.4 x 1038~6-9 位數
double±5.0 × 10−324 ~ ±1.7 × 10308~15-17 位數
decimal±1.0 x 10-28 ~ ±7.9228 x 102828-29 位數

我們馬上來練習看看吧

  • 題目:請分別用 float 與 double 來印出?。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CsharpDemo
{
class Program
{
static void Main(string[] args)
{
//使用float型別來宣告變數
//記得數字最後要加上後置詞f
float pi_f = 3.1415926535879f;

//使用double來宣告變數
double pi_d = 3.1415926535879;

Console.WriteLine("pi_f = " + pi_f);
Console.WriteLine("pi_d = " + pi_d);
Console.ReadKey();
}

}
}

結果

pi_f = 3.141593\ pi_d = 3.1415926535879

  • 由此我們就可以看得出,他們型別之間的差異,這樣在使用之前,我們可以優先考慮,應該要用哪個型別

歡樂的時光總是過得特別的快,以上就是我們今天的變數,請大家請期待明天的字串變數