老酷:小伙儿,消化的怎么样了?
小奇:那点东西能难倒我么?
老酷:真的么?我看你在刻苦研究,一张苦瓜脸。
小奇:昨天的内容我已经研究完了,现在在看数据类型转化和控制台的输入输出。我感觉不会难,只不过是刚看,一头雾水。
老酷:我只要给你简单说一遍,你便可以摆脱这张苦瓜脸,你信不?
小奇:真的么?只要你能做到。我请你吃饭。
老酷:让个位置。为了你的这顿饭我给你秀一波。(几分钟后),看代码
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);
}
运行结果:
运行结果
小奇:这是每个数据类型的取值范围么?
老酷:是的。数据类型之间的转化就像不同大小的容器倒水是一样的。如果将大桶中的水导入到小杯里面。则只能倒满一杯,剩下的水就浪费了。同样的道理long类型的数据强制转化成byte类型则可能会有数据丢失。这种可能发生丢失数据的转化方式我们称之为强制类型转化。杯中水导入桶中不会有溢出行为就像将byte类型转化成long类型不可能发生数据丢失一样。我们这种没有数据丢失的数据类型转化我们称之为隐式转化。
小奇:我明白了。你看看是不是这样的。
static void Main(string[] args)
{
int num1 = 10;
//强制类型转化 不发生数据丢失
byte num2 = (byte)num1;
Console.WriteLine(num2);
int num3 = 20000;
// 强制类型转化
byte num4 = (byte)num3;
Console.WriteLine(num4);
}
运行结果:
运行结果
num3在强制类型转化后成了32 数据发生了丢失。
老酷:是的就是这个道理
小奇:隐式类型转化,不用担心数据丢失。
static void Main(string[] args)
{
byte num1 = 126;
//隐式类型转化
int num2 = num1;
Console.WriteLine(num2);
}
老酷:你开始上道了,天生的程序员。
小奇:老酷,你开始写的代码,字符串里面有\t ,它是什么意思?
老酷:小伙儿,你看的挺细呀!!它就是一个制表符,表示一个TAB键,一个缩进,占四个空格。
小奇:恩。对于控制台的输出我想将字符串和数字形成一句话输出,怎么办?就像你在将数据类型的时候,我想输出"程咬金,等级:13,血量:3000,性别:男,参战状态:false".
老酷:有两种方式,第一种是使用连字符的方式。第二种是使用占位符的方式。下面我给你说一下第一种方式:
static void Main(string[] args)
{
//用户名
string username = "程咬金";
//等级
int level = 13;
//血量
int hp = 3000;
//性别
char gender = '男';
//参战状态
bool isFighting = false;
Console.WriteLine(username+",等级:"+level+",hp:"+hp+",性别:"+ gender+",参战状态:"+isFighting);
}
运行结果:
连字符运行结果
小奇:‘+’ 这不是加号么?
老酷:是的也不是。‘+’用在字符串和其他类型之间的时候就是连字符,用在整型、浮点型还有字符型之间的时候就是加号。连字符就是将字符串类型和其他类型拼接起来。
小奇:好吧,信号你给我说了这点。我感觉这是一个坑。
老酷:对于第二种方式的话,我们成为占位符。类似于大学生考前在图书馆占座是一个道理。接下来我们看看这个效果
static void Main(string[] args)
{
//用户名
string username = "程咬金";
//等级
int level = 13;
//血量
int hp = 3000;
//性别
char gender = '男';
//参战状态
bool isFighting = false;
Console.WriteLine("{0},等级:{1},血量:{2},性别:{3},参战状态:{4}",username,level,hp,gender,isFighting);
}
占位符运行效果
看一下效果,是不是一样的呢?
小奇: 是的,是不是{0}就是第一个占位符,以后每次增加一个后面的变量一个一个的去对应前面的占位符。
老酷:看来你理解很透彻。你在大学是不是经常占座?
小奇:我可是学霸,从不复习!
老酷:呦呵,看不错来呀!!但是这里要注意,占位符中的索引(就是大括号中的数字)必须从0开始,以后一次增加不能跳过任何一个数字。
小奇:懂了!我还有个问题,就是Console.Write()和Console.WriteLine()的区别就是有没有换行么?
老酷:是的。Console.Write()写到控制台上后没有换行,而Console.WriteLine()是要换行的。
比如:
static void Main(string[] args)
{
Console.Write("12345");
Console.Write("abcde");
}
Console.Write的用法
static void Main(string[] args)
{
Console.WriteLine("12345");
Console.WriteLine("abcde");
}
Console.WriteLine()用法
看到效果了吧?
小奇:懂了!我昨天在 练习这部分。但是我想把我输入的东西显示在控制台上怎么办?
老酷:这就需要控制台的输入了呀?需要使用Console.ReadLine();
static void Main(string[] args)
{
Console.WriteLine("请输入旅游城市:");
string place = Console.ReadLine();
Console.WriteLine("欢迎来到{0}",place);
}
Console.ReadLine()的用法
小奇:我貌似发现规律了。Console.WriteLine()就是将数据写到控制台上,Console.ReadLine()就是从键盘上读取数据
老酷:总结很到位。但是不够完整。Console.WriteLine()就是将数据从内存中写到控制台上,Console.ReadLine()就是从键盘上读取数据到内存中。
小奇:恩。今天可以和计算机交互了。开心
老酷:别开心了,带我吃饭去吧!
小奇:你来真的呀!!!!!
网友评论