C#基础 数据类型 类型转换【装箱、拆箱】
本节主要讲解数据类型和各类型之间的转换,两点都是重点,难点在于各种转换的活学活用。
一 数据类型
(一)基本数据类型
1 值类型
(1)整形 int 十位字符长度
Long 最长
bute 0-----255
Short 介于long与int之间
(2)浮点型 float float t = 数值f/F;
double double d = 数值;
decimal decimal dd = 数值m/M
整形只能为整数,浮点型可放整数小数,都可放负数。
2布尔型 bool
boll ok ; ok = true 只有对错两种
Ok=false
3字符型 char
char = ‘ ‘; 单引号,放一个字符,不能为空
(二)引用类型
1字符串型 string (之前有讲过)
2时间日期型 DateTime
DateTime dt = new DateTime(int年,int月,int日)
DateTime nowdt = DateTime.Now 获取系统当前时间
string = “ ”;
String = “null”; 只有字符串类型可以为空
二 数据类型转换
1隐式转换:从值类型转换到引用类型 (装箱)
string a = “10”;
Int b = 20;
String s = a + b;
Console.Writeline(s)
其输出结果为1020 ,自动把int转为steing的字符串类型
string最厉害,其他任何类型与他相加都会被string类型同化掉
2显式转换(强制转换): 从引用类型转换到数值型 (拆箱)
从浮点型转换到整形。
Int a = int.parse(s);
string s = “10”; int a = (int)s; 最好不用
Int a = convert.ToInt32(s) 推荐使用
显式转换有三种方法推荐使用第三种。
显式转换特别容易报错,是唯一一个能让程序在运行过程中因用户的输入而导致报错的地方。
* 字串符类型的强制转换
Int a = 10;
string s = “10”
string ss = a + s; ———— string ss = s+ a.ToString();
相比较强制转换更稳定不容易出错。
* 变量 int a = 10;
a = 20 可以重新继续覆值
常量 const int a = 10; 只能覆值一次
作业
“请输入第一个学生的姓名:”
“请输入第一个学生的年龄:”
“请输入第一个学生的语文成绩:”
“请输入第一个学生的数学成绩:”
“请输入第一个学生的英语成绩:”
“------------------------------”
“请输入第二个学生的姓名:”
“请输入第二个学生的年龄:”
“请输入第二个学生的语文成绩:”
“请输入第二个学生的数学成绩:”
“请输入第二个学生的英语成绩:”
“------------------------------”
“请输入第三个学生的姓名:”
“请输入第三个学生的年龄:”
“请输入第三个学生的语文成绩:”
“请输入第三个学生的数学成绩:”
“请输入第三个学生的英语成绩:”
“-------------------成绩展示---------------------”
“1、张三的语文成绩是:“100”,数学成绩是:“90”,英语成绩是:“80”,总分是:“270”。”
“2、张三的语文成绩是:“100”,数学成绩是:“90”,英语成绩是:“80”,总分是:“270”。”
“3、张三的语文成绩是:“100”,数学成绩是:“90”,英语成绩是:“80”,总分是:“270”。”
语文总分是“”,平均分是“”。
数学总分是“”,平均分是“”。
英语总分是“”,平均分是“”。
所有人员的所有科目分数总和是“”。
1 namespace _2._19作业 2 { 3 class Program 4 { 5 static void Main(string[] args) 6 { 7 //“请输入第一个学生的姓名,年龄,语文,数学,英语成绩” 8 9 Console.Write("请输入第一个学生的姓名;"); 10 11 string xingming1 = Console.ReadLine(); 12 13 Console.Write("请输入第一个学生的年龄:"); 14 15 string nianling1 = Console.ReadLine(); 16 17 Console.Write("请输入第一个学生的语文成绩:"); 18 19 string yuwen1 = Console.ReadLine(); 20 21 Console.Write("请输入第一个学生的数学成绩:"); 22 23 string shuxue1 = Console.ReadLine(); 24 25 Console.Write("请输入第一个学生的英语成绩:"); 26 27 string yingyu1 = Console.ReadLine(); 28 29 Console.WriteLine("----------------------------------------------------------------------------------"); 30 31 //“请输入第二个学生的姓名,年龄,语文,数学,英语成绩” 32 33 Console.Write("请输入第二个学生的姓名;"); 34 35 string xingming2 = Console.ReadLine(); 36 37 Console.Write("请输入第二个学生的年龄:"); 38 39 string nianling2 = Console.ReadLine(); 40 41 Console.Write("请输入第二个学生的语文成绩:"); 42 43 string yuwen2 = Console.ReadLine(); 44 45 Console.Write("请输入第二个学生的数学成绩:"); 46 47 string shuxue2 = Console.ReadLine(); 48 49 Console.Write("请输入第二个学生的英语成绩:"); 50 51 string yingyu2 = Console.ReadLine(); 52 53 Console.WriteLine("----------------------------------------------------------------------------------"); 54 55 //“请输入第三个学生的姓名,年龄,语文,数学,英语成绩” 56 57 Console.Write("请输入第三个学生的姓名;"); 58 59 string xingming3 = Console.ReadLine(); 60 61 Console.Write("请输入第三个学生的年龄:"); 62 63 string nianling3 = Console.ReadLine(); 64 65 Console.Write("请输入第三个学生的语文成绩:"); 66 67 string yuwen3 = Console.ReadLine(); 68 69 Console.Write("请输入第三个学生的数学成绩:"); 70 71 string shuxue3 = Console.ReadLine(); 72 73 Console.Write("请输入第三个学生的英语成绩:"); 74 75 string yingyu3 = Console.ReadLine(); 76 77 Console.WriteLine("---------------------------------成绩展示-------------------------------------------------"); 78 79 // 1、xx的语文成绩是:“__”,数学成绩是:“__”,英语成绩是:“__”,总分是:“__”。” 80 // 2、xx的语文成绩是:“__”,数学成绩是:“__”,英语成绩是:“__”,总分是:“__”。” 81 // 3、xx的语文成绩是:“__”,数学成绩是:“__”,英语成绩是:“__”,总分是:“__”。” 82 83 84 85 86 decimal zongfe1 = Convert.ToDecimal(yuwen1) + Convert.ToDecimal(shuxue1) + Convert.ToDecimal(yingyu1); 87 88 decimal zongfe2 = Convert.ToDecimal(yuwen2) + Convert.ToDecimal(shuxue2) + Convert.ToDecimal(yingyu2); 89 90 decimal zongfe3 = Convert.ToDecimal(yuwen3) + Convert.ToDecimal(shuxue3) + Convert.ToDecimal(yingyu3); 91 92 93 94 95 Console.WriteLine("1、" + xingming1 + "的语文成绩是:“" + yuwen1 + "”,数学成绩是:“" + shuxue1 + "”,英语成绩是:“" + yingyu1 + "”,总分是:“" + zongfe1.ToString() + "“。"); 96 97 Console.WriteLine("2、" + xingming2 + "的语文成绩是:“" + yuwen2 + "”,数学成绩是:“" + shuxue2 + "”,英语成绩是:“" + yingyu2 + "”,总分是:“" + zongfe2.ToString() + "“。"); 98 99 Console.WriteLine("3、" + xingming3 + "的语文成绩是:“" + yuwen3 + "”,数学成绩是:“" + shuxue3 + "”,英语成绩是:“" + yingyu3 + "”,总分是:“" + zongfe3.ToString() + "“。"); 100 101 //语文总分是“”,平均分是“”。 102 //数学总分是“”,平均分是“”。 103 //英语总分是“”,平均分是“”。 104 //所有人员的所有科目分数总和是“”。 105 106 decimal yuwenzongfe = Convert.ToDecimal(yuwen1)+Convert.ToDecimal(yuwen2)+Convert.ToDecimal(yuwen3); 107 108 decimal shuxuezongfe = Convert.ToDecimal(shuxue1) + Convert.ToDecimal(shuxue2) + Convert.ToDecimal(shuxue3); 109 110 decimal yingyuzongfe = Convert.ToDecimal(yingyu1) +Convert.ToDecimal(yingyu2) +Convert.ToDecimal(yingyu3); 111 112 Console.WriteLine("语文总分是“" + yuwenzongfe.ToString() + "”,平均分是“" +( yuwenzongfe/3).ToString() + "”。"); 113 114 Console.WriteLine("数学总分是“" + shuxuezongfe.ToString() + "”,平均分是“" + (shuxuezongfe / 3).ToString() + "”。"); 115 116 Console.WriteLine("英语总分是“" + yingyuzongfe.ToString() + "”,平均分是“" + (yingyuzongfe / 3).ToString() + "”。"); 117 118 Console.WriteLine("所有人员的所有科目分数总和是“" + (zongfe1+zongfe2+zongfe3).ToString()+"”。"); 119 120 121 122 Console.ReadLine(); 123 } 124 }