Day3
一.变量
//1.含义:用来存储特定类型的数据格式,变量的命名 要遵守标识符规则
//2.变量的使用方式:定义变量和使用变量(赋值)
//定义变量格式:数据类型 变量的名字;
int intNumber;
//使用变量格式 变量名=数据内容
intNumber = 1;
//3.变量只能保存最新的数据内容
intNumber = 2;
//4.不允许在相同作用域出现相同名字变量的定义
//int intNumber;
//5.简写
int intNumber1 = 3;
long longNumber, longNumber2, longNumber3;
float floatNumber = 1.1f, floatNumber1 = 1.2f;
//6.局部变量 需要赋值之后才能使用
//int intNumber2;
//Console.WriteLine(intNumber2);
Console.WriteLine(intNumber);
二.常量
//1.用来存储特定类型的数据格式
//2.存储不变的数据
//3.常量的分类:值类型常量 和 字符串型常量 和 const 和 readOnly
//值类型常量
int intNumber10 = 10;//十进制
intNumber10 = 10;
int intNumber2 = 0X20;//十六进制
int intNumber3 = 012;//八进制
float floatrNumber10 = 10.1f;
long longNumber1 = 100L;
uint uintNumber1 = 100u;
char charNumber11 = 'a';//英文
char charNumber21 = '中';//中文
char charNumber31 = '\n';//转义字符
char charNumber41 = '\u058F';//Unicode编码
string stringNumber11 = "abc";//字符串变量
//const 常量
//定义const常量
//const表示的常量 必须在定义时赋值
//const int constIntNumber;
//const表示的常量 名字要用大写
const int CONST_INT_NUMBER = 30;
//const常量使用场景 比如特殊的数字 特殊的符号
const double PI = 3.1415925;
//已知圆的半径为10 求圆的面积
Console.WriteLine(PI*10*10);
const string PE = "中国人";
Console.WriteLine(PE+"热爱和平");
三、输入和输出
//控制台输出内容
//内容换行
Console.WriteLine(10);
//内容不换行
//没有无参方法
Console.Write(20);
Console.Write(30);
Console.WriteLine(40);
//只有换行功能
Console.Write('\n');
Console.WriteLine();
//1.从屏幕读取一串字符,并返回该字符
//2.暂停当前程序,按回车键继续执行程序
Console.WriteLine("请输入你的手机号码:");
string strNumber = Console.ReadLine();
Console.WriteLine("你的手机号为:"+strNumber);
//1.从屏幕读取一串字符的首个字母并返回该字母对应的编码
//2.暂停当前程序,按回车键继续执行程序
Console.WriteLine("请输入你的姓名");
int readIntNumber = Console.Read();
Console.WriteLine("你的姓氏编码为:"+readIntNumber);
//1.暂停当前程序,按任意键继续执行程序
Console.ReadKey();
四.数据类型转换
//隐式类型和显式类型 应用与值类型之间 或者引用类型之间
//隐式类型转换
int intNumber = 1;
//int类型转换成long 小区间转换成大区间
long longNumber = intNumber;
//显式类型转换 大区间转小区见
long longNumber2 = 1;
int intNumber3 = (int)longNumber2;
//2.Parse() 适用于 string转换成值类型
string strNumber = "123";
//无法使用显式类型转换
//int a = (int)strNumber;
//int 代表System.Int32 结构体 Parse属性结构体中的方法
int intParseNumber = int.Parse(strNumber);
//转换后的结果
Console.WriteLine(intParseNumber);
//转换后的类型
Console.WriteLine(intParseNumber.GetType());
//System.Int32.parse(strNumber);
//其他所有值类型都对应有相应结构体
//字符串内容如果不是数字 使用Parse会出现错误
//System.FormatException:“输入字符串的格式不正确。”
//string strNumber1 = "123a";
//int intParseNumber1 = int.Parse(strNumber1);
//Console.WriteLine(intParseNumber1);
- //例子:控制台输入两个数字 相加求和
- //Console.WriteLine("请输入第一个数字:");
- //string strNumber1 = Console.ReadLine();
- //int parseOne = int.Parse(strNumber1);
- //Console.WriteLine("请输入第二个数字:");
- //string strNumber2 = Console.ReadLine();
- //int parseTwo = int.Parse(strNumber2);
- //Console.Write("两个数相加的和为:");
- //Console.WriteLine(parseOne+parseTwo);
//如果解决非数字转换异常问题 使用TryParse
//1.int.TryParse与int.Parse又较为类似,
//2.但他不会产生异常,转换成功后返回 true,
//3.转换失败后返回 false。最后一个参数为输出值,
//4.如果转换失败,输出值为0
Console.WriteLine("请输入第一个数字:");
string strNumber3 = Console.ReadLine();
int resultNumber;
bool isBool = int.TryParse(strNumber3, out resultNumber);
Console.WriteLine(isBool);
Console.WriteLine(isBool ? "转换成功,格式正确" : "转换失败,格式不正确,输入的内容不为纯数字");
//Convert类型转换 适合各种类型相互转换 如果转换内容不符合转换类型的格式 则抛出异常
string convertStr = "123";
int convertInt1 = 123;
bool convertbool = true;
//字符串转换成值类型
int convertInt = Convert.ToInt32(convertStr);
//值类型转换成值类型
long convertLong = Convert.ToInt64(convertInt1);
int convertInt2 = Convert.ToInt32(convertbool);
//布尔类型转换成字符串类型
string convertstr2 = Convert.ToString(convertbool);
//ToString() 适合其他类型转换成字符串
//ToString() 基于所有类型的基类的方法 所以所有类型的对象都能使用此方法转换成字符串类型
int iintNumber100 = 100;
float floatNumber100 = 1000.11f;
bool boolNumber100 = false;
Pepole pepole1 = new Pepole();
Console.WriteLine(iintNumber100.ToString());
Console.WriteLine(floatNumber100.ToString());
Console.WriteLine(boolNumber100.ToString());
Console.WriteLine(pepole1.ToString());
八.运算符
//算术运算符
// + - * / % 数字类型大类型和小类型结合 结果默认为大类型结果
// + 1.拼接字符串 2.求和
string stringNumber = "123";
string stringNumber2 = "123";
Console.WriteLine(stringNumber+stringNumber2);
int intNumber11 = 100;
int intNumber12 = 100;
Console.WriteLine(intNumber12+intNumber11);
Program program = new Program();
Program program1 = new Program();
//不允许非数字类型和字符串类型 直接使用 + 号 需要使用运算符重载
//Console.WriteLine(program+program1);
//二义性错误
long longNumber11 = 1000;
ulong ulongNumber12 = 1000;
//Console.WriteLine(longNumber11+ulongNumber12);
// - * / % ++ --
//求差
int intNumber100 = 100;
int intNumber1000 = 1000;
string strNumber100 = "123";
char charNumber100 = 'a';
char charNumber1000 = '中';
Console.WriteLine(intNumber100 - intNumber1000);
Console.WriteLine(intNumber1000-charNumber100);
Console.WriteLine(charNumber1000-intNumber100);
//非数字类型无法直接使用 - 号
//Console.WriteLine(intNumber100-strNumber100);
//
float floatNumber100 = 100.1f;
long longNumber100 = 1000;
double doubleNumber100 = 1000;
Console.WriteLine(floatNumber100-intNumber100);
Console.WriteLine((floatNumber100-intNumber100).GetType());
Console.WriteLine((longNumber100*intNumber100).GetType().ToString());
Console.WriteLine((doubleNumber100-longNumber100).GetType().ToString());
// ++ -- 让变量自身+1或者-1
int intNumber200 = 100;
//结果都是101
intNumber200 = 101;
intNumber200 = intNumber200 + 1;
intNumber200++;
++intNumber200;
Console.WriteLine(intNumber200);
//++放在变量之后 使用变量时 先使用原值 然后再+1
Console.WriteLine(intNumber200++);
Console.WriteLine(intNumber200);
//++放在变量之前 使用变量时 先 +1 然后使用
Console.WriteLine(++intNumber200);
// -- 同上
//
Console.WriteLine((++intNumber200)+(intNumber200++));
Console.WriteLine(intNumber200);
//
Console.WriteLine((++intNumber200) + (--intNumber200) - (intNumber200--) + (intNumber200++));
//
Console.WriteLine(intNumber200);
Console.ReadKey();
C#中的运算符优先级