内容提示
-
占位符
-
隐式转换
-
显示转换
-
转义符
-
类型转换
-
加加减减
-
接收用户输入的内容
-
总结
一、占位符
- 定义:顾名思义,占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号
- 举例:Console.WriteLine("{0}秒中是{1}天{2}小时{3}分钟{4}秒",second ,day ,h ,min ,mod );
- 具体分解:Console.WriteLine("{0},{1}.......","匹配0","匹配1"),其中,{0},{1}就是字符串中的占位符,先站下位置
- 其他重点占位符:
static void Main()
{
int i=12345;
Console.WriteLine("{0:C}",i); //货币
Console.WriteLine("{0:D}",i); //十进制数
Console.WriteLine("{0:E}",i); //科学技术法
Console.WriteLine("{0:F}",i); // 浮点数表示法
Console.WriteLine("{0:G}",i); //G或g General 常用格式
Console.WriteLine("{0:N}",i); //N或n 用逗号分割千位的数字
}
二、隐式转换
- 隐式转换:即数据的类型的转换由编译器自动进行的,不需要人工干预的数据转换。
- 举例:int类型的数据可以隐式的转换为double类型的数据
double d = 5;
int a = d;
Console.WriteLine(a );
Console.ReadKey();
int a = 5;//可以运行
double d = a;
Console.WriteLine(d);
Console.ReadKey();
- 分析原因:在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入向前舍入。
- 理解:往银行存钱如果少一个小数点将是一件多么不敢想象的事情。
三、显示转换
1.显示转换:与隐式转换相反的数据类型的转换,即需要人为强制干预的数据转换。
2.代码展示:
例如,(int)5.5的结果是5;强制类型转换的目的是使表达式的值的数据类型发生改变,从而使不同类型数据之间的运算能够进行下去。
double d = 5.5;
int a = (int ) d;
Console.WriteLine(d );
Console.ReadKey();
3.用于强行将“表达式”的值转换成“类型名”所表示的数据类型。
四、转义符
1.一种特殊的字符常量;以反斜线"\"开头,后跟一个或几个字符。具有特定的含义,不同于字符原有的意义,故称“转义”字符。主要用来表示那些用一般字符不便于表示的控制代码。 它的作用是消除紧随其后的字符的原有含义,用一些普通字符的组合来代替一些特殊字符,由于其组合改变了原来字符表示的含义,因此称为“转义”; 用可以看见的字符表示那不可以看见的字符, 如'\n'表示换行。
2.常见的转义符及其含义:
\’ 单引号
\” 双引号
\\ 反斜杠
\0 空
\a 警告(产生峰鸣)
\b 退格
\f 换页
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
五、类型转换
1. Convert.ToInt32
该方式不仅可以将字符串类型转换为int,还可以将其他的类型转换为int。
2.具体例子:
static void Main(string[] args)
{
//让用户输入姓名 语文 数学 英语 三门课的成绩,
//然后给用户显示:XX,你的总成绩为XX分,平均成绩为XX分
Console.WriteLine("请输入姓名");
string name = Console.ReadLine();
Console.WriteLine("请输入语文成绩");
string strChinese = Console.ReadLine();
Console.WriteLine("请输入数学成绩");
string strMath = Console.ReadLine();
Console.WriteLine("请输入英语成绩");
string strEnglish = Console.ReadLine();
double chinese = Convert.ToDouble(strChinese);//把字符串类型的语文成绩转换为double类型的数据
double math = Convert.ToDouble(strMath);
double english = Convert.ToDouble(strEnglish);
double sum = chinese + math + english;//计算总成绩
double avg = sum / 3;
Console.WriteLine("{0}你好,你的总成绩为{1},平均成绩为{2:0.0}", name, sum, avg);
Console.WriteLine("{0:0.0}", 34.555);
Console.ReadKey();
}
输出结果:
运用到的知识点:
(1)接收用户的输入;
(2)将用户输入的内容进行转换;
(3)转换的目的是为了更好的运算,使其前后保持一致;
(4)当然还用到了占位符。
六、加加减减
下面同过四个小例子展示,逐步分析他们之间的区别:(看完小例子后将非常的清楚的分清楚各个之间的关系)
总结:前加/前减 都是先在自身的基础上加1/减1;后加/后减 都是先取原值参与运算 然后再加上1/减去1.
加加减减————分为前加和后加
后加:
int num=10;
int number = 10 + num++;//先去原值 参与运算 最后再加上1
Console.WriteLine(number);//number=20
Console.WriteLine(num );//num=11
Console.ReadKey();
前加:
int num = 10;
int number = 10 + ++num;//先自身加1 然后再参与运算
Console.WriteLine(number);//number=21
Console.WriteLine(num);//num=11
Console.ReadKey();
前减
int num = 10;
int number = 10 + --num;//先自身减1 然后再参与运算
Console.WriteLine(number);//number=19
Console.WriteLine(num);//num=9
Console.ReadKey();
后减
int num = 10;
int number = 10 + num--;//先取原值参与运算,再自身减1
Console.WriteLine(number);//number=20
Console.WriteLine(num);//num=9
Console.ReadKey();
七、接收用户输入的内容
实例:(该实例用户可以随意的输入你想要计算的秒数)
优点:没把代码写死,用户可以根据自己想要的方式和数字输入,非常的灵活。
难点:在于类型的转换上。
Console.WriteLine("请输入秒数:");
int second = Convert.ToInt32(Console .ReadLine ());
int day = second / (60 * 60 * 24);//得到的天数
int sec = second % (60 * 60 * 24);//剩余的秒数
int h = sec / (60 * 60);//得到小时数
sec = sec % (60 * 60);//变量的重新赋值,再次得到余数的秒数
int min = sec / 60;//得到分钟数
int mod = sec % 60;//最后的秒数
Console.WriteLine("{0}秒中是{1}天{2}小时{3}分钟{4}秒",second ,day ,h ,min ,mod );
Console.ReadLine();
}
八、总结
其实学习的时候光看视频感觉很多都会了,每当自己用到的时候,才知道原来理解上的一点点小小的瑕疵都将是致命的,所以,学习要建立在实践的基础上,多多的理解,一定要理解透,否则将会很可怕。当然我们每天积累一点点,这个也是可怕的,哈哈哈。还望各位大神的指点。