一.变量
1.变量的含义:用来存储特定类型的数据格式,变量的命名要遵守标识符规则
2.变量的使用方式:定义变量和使用变量(赋值)
定义变量格式:数据类型 变量名称;
int a;
使用变量格式:变量名称 = 数据内容;
a = 1;
3.变量只能保存最新的数据内容
已知上面的变量a = 1;
在重新赋值只能保存最新的内容如:a = 2;
4.在同一作用域下变量的名称不能相同
5.变量的简写方式
int a = 1;
int b = 2;
double c = 3.14;
二.常量
变量:值可以发生变化
常量:值不能发生变化(单一性)
//const 常量
//1.const表示的常量 必须在定义时赋值
//const int constIntNumber;
//2.const表示的常量 名字要用大写
const int CONST_INT_NUMBER = 30;
//3.const常量使用场景 比如特殊的数字 特殊的符号
const double PI = 3.1415926;
三.输入和输出
//1.控制台输出内容
//2.内容换行
Console.WriteLine(10);
//1.控制台输出内容
//2.内容不换行
//3.没有无参方法
Console.Write(20);
Console.Write(30);
Console.WriteLine(40);
//1.只有换行功能
Console.Write('\n');
Console.WriteLine();
//1.从屏幕读取一串字符,并返回该字符串
//2.暂停当前程序,按回车键继续执行程序
string strNumber = Console.ReadLine();
Console.WriteLine(strNumber);
//1.从屏幕读取一串字符的首个字符并返回该字符对应的编码
//2.暂停当前程序,按回车键继续执行程序
int readIntNumber = Console.Read();
Console.WriteLine(readIntNumber);
//1.暂停当前程序, 按任意按键继续执行程序
Console.ReadKey();
四.数据类型转换
类型转换就是将A类型的变量赋值给B类型的变量
隐式类型转换(两种类型兼容,小转大) 适用于值类型之间转换
//隐式类型转换
int number = 1;
double dNumber = number; //自动类型转换 隐式类型转换
Console.WriteLine(dNumber);
/*
* 总结"
* 1.小的范围能转大范围,大范围不能转小范围
* 2.同级别之前都不能转换
* 3.无符号可以转换大范围的有符号和无符号
* 4.有符号可以转换大范围有符号,不能转无符号
*/
显示类型转换(两种类型兼容,大转小):
从大范围到小范围的转换
//显示类型转换
double d = 1.1;
int a = (int)d;
字符串和其他类型之间的转换
1.其他类型转字符串 tostring()
//其他类型转换成字符串类型 方式1
int intNumber9 = 100;
Console.WriteLine(Convert.ToString(intNumber9));
//其他类型转换成字符串类型 方式2
string strNumber9 = intNumber9.ToString();
Console.WriteLine(strNumber9);
2. 字符串类型转换为其他类型:parse()
string strNumber = "123";
int intNumber4= int.Parse(strNumber);
Console.WriteLine(intNumber4);
long longNumber4 =long.Parse(strNumber);
Console.WriteLine(longNumber4);
// 注意bool类型转换
string stringNumber5 = "true";
bool boolNumber = bool.Parse(stringNumber5);
Console.WriteLine(boolNumber);
/// int.TryParse 与 int.Parse 又较为类似,但它不会产生异常,转换成功返回 true,
/// 转换失败返回 false。最后一个参数为输出值,如果转换失败,输出值为 0
//尝试转换数据 如果不成功 会返回false结果
//成功返回 true
int ab; //用于输出参数
string stringNumber6 = "a12";
bool isSuccess = int.TryParse(stringNumber6, out ab);
string isSuccessStr = isSuccess?"转换成功":"转换失败";
Console.WriteLine(isSuccessStr);
Console.WriteLine(ab); // 转换失败结果为 0
3.Convert类型转换 适合各种类型相互转换
万能类型转换 任意类型之间转换
string stringNumber7 = "123";
int intNumber7 = Convert.ToInt32(stringNumber7);
long longNumber7 =Convert.ToInt64 (stringNumber7);
short shortNumber7 = Convert.ToInt16 (stringNumber7);
uint uintNumber7 = Convert.ToUInt32 (stringNumber7);
ulong ulongNumber7 = Convert.ToUInt64 (stringNumber7);
ushort ushortNumber7 = Convert.ToUInt16 (stringNumber7);
float floatNumber7 = Convert.ToSingle(stringNumber7);
double doubleNumber7 = Convert.ToDouble(stringNumber7);
//bool类型转换成数字类型 时 对应的是 0 和1
bool boolNumber7 = true;
int intNumber8 = Convert.ToInt32(boolNumber7);
Console.WriteLine(intNumber8);
//这种情况就无法转换
string s1 = "123abc";
int a1 = Convert.ToInt32(s);
double b1 = Convert.ToDouble(s);
五.运算符
运算符:就是告诉编译器执行特定的数学逻辑操作的符号
算术运算符 + - * / % ++ --
赋值运算符= += -= *= /= %=
关系运算符
<,>,<=,>=,==,!=
逻辑运算符 && || !
1. &,| &&,||, !
2.或 |,短路:||
3.与 &,短路:&&
4.非 !(作用一个)
* &(与),|(或),&&(短路与),||(短路或),!(非)
* &:T&T=T T&F=F F&T=F F&F=F;两边表达式都会执行;两边都是真,整体才是真。
* |:T|T=T T|F=T F|T=T F|F=F;两边表达式都会执行;两边有一个真,整体就是真。
* &&:T&&T=T T&&F=F F&&T=F F&&F=F;会发生短路,前面如果是 F 那么后面表达式不执行;两边都是真,整体才是真。
* ||:T||T=T T||F=T F||T=T F||F=F;会发生短路,前面如果是 T 那么后面表达式不执行;两边有一个真,整体就是真。
* !:!T=F !F=T;取反操作
/*
* 总结:
* & 遇到一个false 最终结果就是false
* | 遇到一个true 最终结果就是true
* && 遇到一个false 就直接结束运算.后续的代码不再执行(遇假则返)
* || 遇到一个true 就直接结束运算,后续的代码不再执行(遇真则返)
*/
//! 非 取反 true取反是false false取反是true
Console.WriteLine(!true);
Console.WriteLine(!(10 > 20));
三目运算符
格式:比较表达式 ? 值1 : 值2;
比如:
string info = a > b ? "值1" : "值2";
执行逻辑: 布尔表达式的值为true返回值值1,布尔表达式的值为false返回值2
运算符优先级,从高到底
1. . () {} ;
2. ++ -- !
3. * / %
4. + -
5. < > <= >=
6. == !=
7. &
8. |
9. &&
10. ||
11. ?
数学运算
//绝对值
Console.WriteLine(Math.Abs(33));//33
Console.WriteLine(Math.Abs(-33));//33
//四舍五入
Console.WriteLine(Math.Round(3.5));
//求最大值
Console.WriteLine(Math.Max(3,5));
//求最小值
Console.WriteLine(Math.Min(3,5));
// 幂运算
Console.WriteLine(Math.Pow(2,4));//16 2*2*2*2
//向下取整
Console.WriteLine(Math.Floor(2.9));//2
Console.WriteLine(Math.Floor(-2.9));//-3
//向上取整
Console.WriteLine(Math.Ceiling(2.9));//3
Console.WriteLine(Math.Ceiling(2.1));//3
Console.WriteLine(Math.Ceiling(-2.9));//-2
//开平方
Console.WriteLine(Math.Sqrt(9)); //3
Console.WriteLine(Math.PI);
//获取某个数值类型的最大值
Console.WriteLine(int.MaxValue);//2147483647
Console.WriteLine(decimal.MaxValue);//79228162514264337593543950335
// 获取某个数值类型的最小值
Console.WriteLine(int.MinValue);//-2147483647
Console.WriteLine(decimal.MinValue);//-79228162514264337593543950335
//负无穷大
Console.WriteLine(double.NegativeInfinity);//-∞
//无穷大
Console.WriteLine(double.PositiveInfinity);//∞