C#基础——类型转换与逻辑运算

2023-12-13 12:52:58

1、类型转换

 int number = 100;
 // 类型不匹配   int >>> long
 long number2 = number;
 Console.WriteLine(number2); //100
 int longNumber1 = 500;
 int number3 = longNumber1;
 Console.WriteLine(number3); //500

严格意义上来说,上述的代码并不符合c#语言特性,因为类型不匹配的形况下进行了赋值
但是由于int 和 long都属于整数类型,只不过位数不同,所以系统默认进行了类型转换,
按照分类:c#中类型转换可以分为:
1.隐式类型转换
c# 默认以安全的形式进行转换,数据不会丢失,
例如从小的整数类型转换为大的整数类,从派生类转为基类
sbyte > short > int > long > float > double > decimal
2.显示类型转换
又叫做强制类型转换,需要用到转换运算符,而且强制类型转换会造成数据的丢失(大转小)

例如:在赋值前使用(int)进行强制类型转换,但是得到的结果造成了小数的丢失

 double d1 = 66.66;
 int number4 = (int)d1;
 Console.WriteLine(number4); //66

如果字符串的内容跟值类型相关,那么可以尝试对应数据类型的转换
Parse方法代表把字符串内容转成对应类型的内容
这里打印出来的是 int 类型的123

string testStr = "123";
int intParsc = int.Parse(testStr);
Console.WriteLine(intParsc); //123
//打印当前类型
Console.WriteLine(intParsc.GetType().ToString()); //System.Int32

字符串拼接

 // 获取控制台输入内容时返回的也是string类型
 Console.WriteLine("请输入第一个数");
 string a = Console.ReadLine(); //假设输入的是 1
 Console.WriteLine("请输入第二个数");
 string b = Console.ReadLine(); //假设输入的是 2
 // 如果是字符串使用 + 代表的是字符串拼接
 Console.WriteLine(a + b); //12

// 如果想得到的结果为 3 那么就需要先进行类型转换
 Console.WriteLine(int.Parse(a) + int.Parse(b)); //3

Convert 类也提供数据转换的功能

 int nNum = Convert.ToInt32(Console.ReadLine()); //假设输入5
 Console.WriteLine(nNum); //5  得到的也是数字类型5
 // 打印当前类型
 Console.WriteLine(nNum.GetType().ToString()); //System.Int32

占位符的使用

 int a = 10, b = 11, c = 12;
 Console.WriteLine("第一个数:" + a + ",第二个数:" + b + ",第三个数:" + c);
 //下面这两种需要注意顺序(因为是按照索引排序的)
 Console.WriteLine("第一个数:{0},第二个数:{1},第三个数:{2}", a, b, c);
 Console.WriteLine($"第一个数:{a},第二个数:{b},第三个数:{c}");
 // 上面三行打印的结果都是  第一个数:10,第二个数:11,第三个数:12

值类型的四则运算 ( + - * / % )

 int sum1 = 100;
 int sum2 = 50;
 // c#中支持值类型的四则运算 + - * / %
 Console.WriteLine(sum1 + sum2);
 Console.WriteLine(sum1 - sum2);
 Console.WriteLine(sum1 * sum2);
 Console.WriteLine(sum1 / sum2);
 Console.WriteLine(sum1 % sum2);

自增与自减

 int number5 = 1;
 number5++; // 相当于 number5 = number5 + 1
 number5--; // 相当于 number5 = number5 - 1

 // 如果++或--放在了后面,那么在赋值的时候是先把变量的值返回,然后在++或--
 int number6 = 1;
 int number7 = number6++;
 Console.WriteLine(number6); //2
 Console.WriteLine(number7); //1

 //如果 ++或-- 在变量前面,那么是先++或--,在进行赋值
 int number8 = 1;
 int number9 = ++number8;
 Console.WriteLine(number8); //2
 Console.WriteLine(number9); //2

2、逻辑运算

逻辑运算需要用到关系运算符 == > < != 主要是表达某种比较后的结果
一个 = 代表赋值 两个== 代表比较是否相等,结果以布尔值呈现

 Console.WriteLine(5 == 10); // false
 // != 不等运算符,主要用来验证两边不相等
 Console.WriteLine(5 != 10); //true
 // < 小于运算符,主要用来验证左侧是否小于右侧
 Console.WriteLine(5 < 10); // true
 // > 大于运算符,主要用来验证左侧是否大于右侧
 Console.WriteLine(5 > 10); // false
 // <= 小于运算符,主要用来验证左侧是否小于等于右侧
 Console.WriteLine(5 <= 10); // true
 // >= 小于运算符,主要用来验证左侧是否大于等于右侧
 Console.WriteLine(5 >= 10); // false

is验证是否属于某一个类型,返回一个布尔值

Object obj = new Object();
Console.WriteLine(obj is Object); //true

&&且 ||或 ,返回一个布尔值

// &&与运算符(和),两边的条件表达式都需要为true的时候结果才是true
Console.WriteLine((6 % 2 == 0) && (1 + 1 == 3)); //false
// ||或运算符(或),两边的条件表达式有一个结果为true的时候结果就为true
Console.WriteLine((6 % 2 == 0) || (1 + 1 == 3));

位移运算(<< >>)

 // 移位运算:按照计算机运位进行计算,先将值转成二进制,然后每一位应用一个
 // 1进行补码,返回补码后的结果
 // 14: 000 1110  ->   0001 1100
 Console.WriteLine(14 << 1); //28
 // 14: 000 1110  ->   0000 0111
 Console.WriteLine(14 >> 1); //7
 // 按位运算符
 // 14: 0000 1110
 // 13: 0000 1101
 // 如果两个数上的对应位置上的数字都是1,那么就取1,如果是0,就取0
 // 12: 0000 1100
 Console.WriteLine(13 & 14);

模板字符串

// 模板字符串
// 在字符串的前面添加一个 $ 符号前缀
// 就可以在字符串内部使用 {} 的方法填充其他内容
string str1 = "world";
string str2 = "Hello " + str1;
string str3 = $"{{ Hello {str1} }}";
Console.WriteLine(str3);

// WriteLine 方法内也有一种特殊的参数传递形式
Console.WriteLine("Hello {0} {1}", "world", "!!!");
Console.WriteLine($"Hello {str1}");

转义字符

char a = '\n'; //换行
char b = '\\'; // \
char c = '\t'; // tab键
char d = '\"'; // 双引号
char e = '\''; // 单引号
Console.WriteLine("c:\\a\\b\\c");
Console.WriteLine(@"c:\\a\\b\\c"); //要想使转义字符不生效,就是用 @ 符号

输入文本

// 通过控制台向程序输入内容
// 获取的结果就是填入的值,类型是 字符串
// 输入方法会暂停代码的运行,等待用户输入才继续
string input = Console.ReadLine();
Console.WriteLine($"您输入的内容是:{input}");

相关链接:
C#数据类型
C#类型转换

文章来源:https://blog.csdn.net/qq_51810680/article/details/134873794
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。