观前提醒
记录一些我不会或者少见的内容,不一定适合所有人
字符串拼接
int a=3,b=8;
Console.WriteLine(a+b);//11
Console.WriteLine("a+b");//a+b
Console.WriteLine(a+"+"+b);//3+8
Console.WriteLine("a+b"+a+b);//a+b38
Console.WriteLine("a+b"+(a+b));//a+b11
ASCII码:
char a='a';
int b=a;
Console.WriteLine(a);//a
Console.WriteLine(b);//97
强制类型转换
如果遇到的是值a
超出范围了,那么VS会提示报错,就是不容许你把一个大容器的水装入到小容器中,这会导致溢出。
所以就需要用到强制类型转换,但是精度会下降。
原则:int b=a;
左边值的容器大小 ≥\geq≥ 右边值所需容器大小
所占字节大小(容器大小):byte,short,char < int < long <float <double
,byte
和short
参与运算会自动转换成int
接下来通过类似如下语句的写法(格式化)展示大小
Console.WriteLine("{0}:\t 所占字节数: {1}\t 最小值:{2}\t 最大值:{3}\n",typeof(byte).Name, sizeof(byte), byte.MinValue, byte.MaxValue);
注:
U
的意思是无符号SByte
数据类型可包含不需要Integer
的完整数据宽度甚至Short
的半数据宽度的整数值decimal
类型较于double
具有更高的精度和更小的范围Int16
是short
,Int32
是int
,int64
为long,Single
为float
测试用例:
int a=97;
char b=(char)a;
输出...
@
的妙用
作用1:不让转义字符生效
char a='\n';
char b='\\';
//方法一:
Console.WriteLine("\\a\\b");
//方法二:
Console.WriteLine(@"\a\b");
作用2:字符拼接但是换行!
与+
拼接字符串还是有些区别的
注:如果想要在拼接\a
与\b
字符中间插入"
,写法为@"\a""\b"
string str = @"\a
\b";Console.WriteLine(str);
输入
Console.ReadLine()
:最终得到的是string类型
string a=Console.ReadLine();
如果想转换成其他类型,比如我输入整数,转成Int
类型
int b = Convert.ToInt32(Console.ReadLine());
自增与自减
a++
先输出再加1++a
先加1再输出
简单练习题思路(代码其实不重要)
1、如何让数字倒过来输出
- 步骤1:输入整数,善用除法
/
和求余%
得各个位数 - 步骤2:通过字符串拼接输出即可,比如
""+十位数+个位数
- 另一种输出方式:乘法
*
与加法+
结合重新拼一个数
扩展:给你5位数,我只想要千位和十位数,然后按顺序组合成的新数值是?
2、说出下面运算结果的逻辑实现与最终结果
int a = 3;
int b = a++ + a++;
Console.WriteLine(a);//5
Console.WriteLine(b);//7
// (前面的)a先输出3 加上 (后面的)a++,此时(后面的)a值先输出为4
// 于是就为3 + 4 ,最终输出的a值为5
扩展:修改b = a++ + (++a)
,那么结果为?
我认为最不需要记的知识(知道就行)
程序结构:
- 入口类(熟能生巧,VS也有提示)
变量:
- 命名规则(VS会贴心提示你)
- 数据类型(熟能生巧)
运算符
- 算术运算符、逻辑运算符、关系运算符的知识(回炉重造,重学C语言吧)