老酷:小伙兒两蟀,消化的怎么樣了?
小奇:那點(diǎn)東西能難倒我么震缭?
老酷:真的么垫竞?我看你在刻苦研究,一張苦瓜臉蛀序。
小奇:昨天的內(nèi)容我已經(jīng)研究完了欢瞪,現(xiàn)在在看數(shù)據(jù)類型轉(zhuǎn)化和控制臺(tái)的輸入輸出。我感覺不會(huì)難徐裸,只不過是剛看遣鼓,一頭霧水。
老酷:我只要給你簡單說一遍重贺,你便可以擺脫這張苦瓜臉骑祟,你信不?
小奇:真的么气笙?只要你能做到次企。我請(qǐng)你吃飯。
老酷:讓個(gè)位置潜圃。為了你的這頓飯我給你秀一波缸棵。(幾分鐘后),看代碼
static void Main(string[] args)
{
Console.WriteLine("sbyte\t\t\tmin:{0}\t\t\tmax:{1}", sbyte.MinValue, sbyte.MaxValue);
Console.WriteLine("byte\t\t\tmin:{0}\t\t\t\tmax:{1}", byte.MinValue,byte.MaxValue);
Console.WriteLine("short\t\t\tmin:{0}\t\t\tmax:{1}", short.MinValue, short.MaxValue);
Console.WriteLine("ushort\t\t\tmin:{0}\t\t\t\tmax:{1}", ushort.MinValue, ushort.MaxValue);
Console.WriteLine("int\t\t\tmin:{0}\t\t\tmax:{1}", int.MinValue, int.MaxValue);
Console.WriteLine("uint\t\t\tmin:{0}\t\t\t\tmax:{1}", uint.MinValue, uint.MaxValue);
Console.WriteLine("long\t\t\tmin:{0}\tmax:{1}", long.MinValue, long.MaxValue);
Console.WriteLine("ulong\t\t\tmin:{0}\t\t\t\tmax:{1}", ulong.MinValue, ulong.MaxValue);
}
運(yùn)行結(jié)果:
小奇:這是每個(gè)數(shù)據(jù)類型的取值范圍么谭期?
老酷:是的堵第。數(shù)據(jù)類型之間的轉(zhuǎn)化就像不同大小的容器倒水是一樣的。如果將大桶中的水導(dǎo)入到小杯里面隧出。則只能倒?jié)M一杯踏志,剩下的水就浪費(fèi)了。同樣的道理long類型的數(shù)據(jù)強(qiáng)制轉(zhuǎn)化成byte類型則可能會(huì)有數(shù)據(jù)丟失胀瞪。這種可能發(fā)生丟失數(shù)據(jù)的轉(zhuǎn)化方式我們稱之為強(qiáng)制類型轉(zhuǎn)化针余。杯中水導(dǎo)入桶中不會(huì)有溢出行為就像將byte類型轉(zhuǎn)化成long類型不可能發(fā)生數(shù)據(jù)丟失一樣。我們這種沒有數(shù)據(jù)丟失的數(shù)據(jù)類型轉(zhuǎn)化我們稱之為隱式轉(zhuǎn)化。
小奇:我明白了圆雁。你看看是不是這樣的傍妒。
static void Main(string[] args)
{
int num1 = 10;
//強(qiáng)制類型轉(zhuǎn)化 不發(fā)生數(shù)據(jù)丟失
byte num2 = (byte)num1;
Console.WriteLine(num2);
int num3 = 20000;
// 強(qiáng)制類型轉(zhuǎn)化
byte num4 = (byte)num3;
Console.WriteLine(num4);
}
運(yùn)行結(jié)果:
num3在強(qiáng)制類型轉(zhuǎn)化后成了32 數(shù)據(jù)發(fā)生了丟失。
老酷:是的就是這個(gè)道理
小奇:隱式類型轉(zhuǎn)化摸柄,不用擔(dān)心數(shù)據(jù)丟失颤练。
static void Main(string[] args)
{
byte num1 = 126;
//隱式類型轉(zhuǎn)化
int num2 = num1;
Console.WriteLine(num2);
}
老酷:你開始上道了,天生的程序員驱负。
小奇:老酷嗦玖,你開始寫的代碼,字符串里面有\(zhòng)t ,它是什么意思跃脊?
老酷:小伙兒宇挫,你看的挺細(xì)呀!酪术!它就是一個(gè)制表符器瘪,表示一個(gè)TAB鍵,一個(gè)縮進(jìn)绘雁,占四個(gè)空格橡疼。
小奇:恩。對(duì)于控制臺(tái)的輸出我想將字符串和數(shù)字形成一句話輸出庐舟,怎么辦欣除?就像你在將數(shù)據(jù)類型的時(shí)候,我想輸出"程咬金挪略,等級(jí):13历帚,血量:3000,性別:男杠娱,參戰(zhàn)狀態(tài):false".
老酷:有兩種方式挽牢,第一種是使用連字符的方式。第二種是使用占位符的方式摊求。下面我給你說一下第一種方式:
static void Main(string[] args)
{
//用戶名
string username = "程咬金";
//等級(jí)
int level = 13;
//血量
int hp = 3000;
//性別
char gender = '男';
//參戰(zhàn)狀態(tài)
bool isFighting = false;
Console.WriteLine(username+",等級(jí):"+level+",hp:"+hp+",性別:"+ gender+",參戰(zhàn)狀態(tài):"+isFighting);
}
運(yùn)行結(jié)果:
小奇:‘+’ 這不是加號(hào)么禽拔?
老酷:是的也不是《么兀‘+’用在字符串和其他類型之間的時(shí)候就是連字符奏赘,用在整型寥闪、浮點(diǎn)型還有字符型之間的時(shí)候就是加號(hào)太惠。連字符就是將字符串類型和其他類型拼接起來。
小奇:好吧疲憋,信號(hào)你給我說了這點(diǎn)凿渊。我感覺這是一個(gè)坑。
老酷:對(duì)于第二種方式的話,我們成為占位符埃脏。類似于大學(xué)生考前在圖書館占座是一個(gè)道理搪锣。接下來我們看看這個(gè)效果
static void Main(string[] args)
{
//用戶名
string username = "程咬金";
//等級(jí)
int level = 13;
//血量
int hp = 3000;
//性別
char gender = '男';
//參戰(zhàn)狀態(tài)
bool isFighting = false;
Console.WriteLine("{0},等級(jí):{1}彩掐,血量:{2}构舟,性別:{3},參戰(zhàn)狀態(tài):{4}",username,level,hp,gender,isFighting);
}
看一下效果堵幽,是不是一樣的呢狗超?
小奇: 是的,是不是{0}就是第一個(gè)占位符朴下,以后每次增加一個(gè)后面的變量一個(gè)一個(gè)的去對(duì)應(yīng)前面的占位符努咐。
老酷:看來你理解很透徹。你在大學(xué)是不是經(jīng)常占座殴胧?
小奇:我可是學(xué)霸渗稍,從不復(fù)習(xí)!
老酷:呦呵团滥,看不錯(cuò)來呀8鸵佟!但是這里要注意灸姊,占位符中的索引(就是大括號(hào)中的數(shù)字)必須從0開始羔沙,以后一次增加不能跳過任何一個(gè)數(shù)字。
小奇:懂了厨钻!我還有個(gè)問題扼雏,就是Console.Write()和Console.WriteLine()的區(qū)別就是有沒有換行么?
老酷:是的夯膀。Console.Write()寫到控制臺(tái)上后沒有換行诗充,而Console.WriteLine()是要換行的。
比如:
static void Main(string[] args)
{
Console.Write("12345");
Console.Write("abcde");
}
static void Main(string[] args)
{
Console.WriteLine("12345");
Console.WriteLine("abcde");
}
看到效果了吧诱建?
小奇:懂了蝴蜓!我昨天在 練習(xí)這部分。但是我想把我輸入的東西顯示在控制臺(tái)上怎么辦俺猿?
老酷:這就需要控制臺(tái)的輸入了呀茎匠?需要使用Console.ReadLine();
static void Main(string[] args)
{
Console.WriteLine("請(qǐng)輸入旅游城市:");
string place = Console.ReadLine();
Console.WriteLine("歡迎來到{0}",place);
}
小奇:我貌似發(fā)現(xiàn)規(guī)律了。Console.WriteLine()就是將數(shù)據(jù)寫到控制臺(tái)上押袍,Console.ReadLine()就是從鍵盤上讀取數(shù)據(jù)
老酷:總結(jié)很到位诵冒。但是不夠完整。Console.WriteLine()就是將數(shù)據(jù)從內(nèi)存中寫到控制臺(tái)上谊惭,Console.ReadLine()就是從鍵盤上讀取數(shù)據(jù)到內(nèi)存中汽馋。
小奇:恩侮东。今天可以和計(jì)算機(jī)交互了。開心
老酷:別開心了豹芯,帶我吃飯去吧悄雅!
小奇:你來真的呀!L浮?硐小!握牧!