一、变量:
定义:内存中开辟的一块用于存储数据的空间;
思考:程序运行在哪?-内存;
程序处理什么?-数据;
数据类型:
整型:
1个字节:有符号sbyte(-128-127),无符号byte(0-255)
2个字节:有符号short(-32768-32767),与无符号ushort(0-65535)
4字节:有符号int,无符号uint;
8字节:有符号long,无符号ulong;
浮点型:·
4字节:单精度浮点类型float,精度7位(f);
8字节∶双精度浮点类型double,精度15-16位(d);
16字节:128位数据类型decimal,精度28-29位,适用于财务和货币计算(m);
注意事项:
1.非整形变量赋值要加上后缀,如果不加默认为double;
2.浮点型运算会出现舍入误差:
bool number= 1.0f-0.9f == 0.1f;
二进制无法精确表示1/10,就像十进制无法精确表示1/3,
所以二进制表示十进制会有一些舍入误差,对于精度要求较高
的场合会导致代码的缺陷,可以使用decimal代替。
字符(串)型:
char,2字节,存储单个字符,使用单引号;
string 字符串,存储文本,使用双引号;
bool型:
一字节,可以直接赋值ture/false,或者赋值表达式判断;
二、语法:
声明:在内存中开辟一块空间;
数据类型/变量名;
命名规则:由字母、数字和下划线,不能以数字开头;
不能保留关键字;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleDay2
{
class Program
{
static void Main(string[] args)
{
float f1 = 1.0f;
float f2 = 0.9f;
float re = f1 - f2;
bool s = re ==0.1f;
Console.WriteLine(s);
}
}
}
运行结果:
原因:二进制无法精确表示1/10;
namespace ConsoleDay2
{
class Program
{
static void Main(string[] args)
{
decimal f1 = 1.0m;
decimal f2 = 0.9m;
decimal re = f1 - f2;
bool s = re ==0.1m;
Console.WriteLine(s);
}
}
}
调试:(排错误能力)
–在可能出错的地方加断点;
–F5启动调试;
–F11逐语句执行;
–shift+F5停止调试;
小练习(在控制台console中录入枪的信息):
“请输入枪的名称:”
“请输入弹匣容量:”
“请输入当前弹匣内子弹数量:”
“请输入剩余子弹数量:”
//在一行显示
枪的名称是:XXX,弹匣容量:XXX,弹匣子弹数:XXX,剩余子弹数:XXX;
代码如下:
namespace ConsoleDay2
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入枪的名称:");
string gunName = Console.ReadLine();
Console.WriteLine("请输入弹匣容量:");
string ammoCapacity = Console.ReadLine();
Console.WriteLine("请输入当前弹匣内子弹数量:");
string currentAmmoBullets = Console.ReadLine();
Console.WriteLine("请输入剩余子弹数量:");
string remainBullets = Console.ReadLine();
Console.WriteLine("枪的名称是:" + gunName + ",弹匣容量:" + ammoCapacity + ",剩余子弹数:" + remainBullets);
Console.ReadLine();
}
}
}
一、占位符(位置的编号)
编号:从0开始,用大括号,且必须有前缀格式符:Format//代码可读性强()
标准数字字符串格式化(货币、时间、指定精度显示(四舍五入)等):
Console.WriteLine("金额:{0:c}",10);//货币