m1w1d2_console_variable_constant
输入Console.WriteLine();
输出Console.ReadLine();
快捷键
折叠代码:快捷键“Ctrl+ K + S”
隐藏当前代码:组合键“Ctrl + M,M”
显示全部代码:组合键“Ctrl + M,L”
注释:组合键“Ctrl + K + C”;
取消注释:组合键“Ctrl + K + U”
批量操作:按住Alt选择一片区域,前段会有蓝线
快捷写法
Console.WriteLine();CW + 双击T
switch语句快速生成枚举方法,复制枚举名在switch()里,双击TAB
for循环,按两下TAB
i++:for+按两下TAB
i--:forr+按两下TAB
变量名命名要求
1、变量名头必需以字母或下划线"_"开头
2、变量名体只能是数字,字母,下划线的组合
3、不能使用编程语言的关键字
4、在作用域内,不能同名
命名是有法则的
1、命名要有意义(概括变量里数据的规律)
2、变量使用驼峰命名法(除了第一个单词首字母小写,其余单词首字母全大写)
3、类与方法使用帕斯卡命名法(每个单词的首字母都大写)
1、定义一个变量:数据类型 变量名;
2、给变量赋值:变量名 =(赋值符号) 值(数据)
常量:
const 数据类型 常量名
命名法则:全大写,单词之间用下划线分隔
常量在定义时一定要赋值(初始化赋值)
常量的值不可以更改
m1w1d2_ide
复制代码
关闭番茄插件的拼写纠错,Visual Assist Options的Underlining
调整行号:工具-选项-文本编辑器-C#-行号
调整主题:工具-选项-环境-常规-颜色主题-深色
调整字体:工具-选项-环境-字体颜色(推荐字体Consolas)
取数据类型的长度:sizeof()
基础数据类型所占字节:
ASCII表
0-9:48-57
A-Z:65-90
a-z:97-122
字符串格式化输出:
Console.Writeline($"最大值{max}");
$符号,{}里可以直接填变量
显式转换:
Convert:用于所有基本类型之间的转换
Convert.ToInt16('A');
Parse:将字符串转换成一个特定类型
int.Parse(Console.ReadLine());
强制转换符:用于数值类型(整型,浮点型,char)和派生(继承)之间的转换
int a = (int)'a'
复制代码
m1w1d4_operator
条件运算符:第一表达式?第二表达式:第三表达式
第一表达式必须是布尔表达式
第二和第三表达式必须和接收的类型一致
如果第一表达式为true时,返回第二表达式结果
如果第一表达式为false时,返回第三表达式结果
m1w1d5_randomnumber
随机数
Random roll = new Random();
roll.Next(-10 , 11);
m1w2d2_complex_datatype
复制代码
基本数据类型
1、定义变量,2、使用变量
复杂数据类型
1,定义类型,2、定义这个类型的变量、2、使用变量
枚举:一般情况我们用枚举来表示一组状态的集合
定义类型 一般情况下我们都放在类外面定义
enum 自定义枚举名
{
成员(枚举项),
成员(枚举项),
}
每个枚举项都可以赋整数值
如果没有赋值,他的值是前一枚举项的值+1
第一个枚举项如果不赋值,默认值0
赋值原因:给枚举项建立数学联系(属性相克)
定义这个类型的变量时,枚举的值,只能是所规定的枚举项
自定义枚举名 变量名 = 自定义枚举名.某一枚举项
枚举转字符串:对应的变量,调用toString()方法,可以将枚举转字符串
字符串转成枚举:(Occupation)Enum.Parse(typeof(Occupation), "道士");
复制代码
m1w2d3_array
复制代码
1、定义一个数组变量
数据类型[] 变量名;
int[] array;
数据类型[] 变量名 = {成员,成员};
int[] array1 = { 1, 2, 3, 4, 5 };//不指定元素个数,只指定元素
int[] array2 = new int[8] { 1, 2, 3, 4, 5, 6, 7, 8 };//先限制元素个数,然后再指定元素
数据类型[] 变量名 = 指定的长度空数组。
int[] array3 = new int[8];//最常用的形式,不关心值,只关心处理逻辑
元素的值是默认值(微软MSDN默认值)
数值类型是对应0
如果字符串是" "
2、使用数组
访问成员,通过下标 变量名[下标号]访问对应下标的成员
array1[2] = 100;
Console.WriteLine(array1[2]);
如果我使用的下标是负数,或者超出了元素个数,指定了数组中一个不存在的元素
会出现 越界异常
下标的有效范围是(0 - 数组名.Length-1)
Console.WriteLine(array1.Length);
Console.WriteLine(array1.[array1.Length - 1 ]);
通过数组名.Length我们能知道这个数组中有多少个元素
3、遍历数组
遍历就是从一个 数据结构 第一个元素 到 最后一个元素
遍历就是把 数据结构中 所有元素访问完
Length:取数组元素的总个数
GetLength:取不同维度的个数
复制代码
m1w2d3_struct_array
复制代码
结构体
用途:一般情况下我们使用结构体来描述复杂事物,如桌子,如位置
这个复杂事物不能包含自己,会发生递归调用
结构体用于:属性不多,频繁计算的复杂事物
结构体储存在栈里,运行速度快,但栈里的空间宝贵,所以用来描述的事物不宜过多(<=5)(也可以不放在栈里,运算不用跳地址)
一般用于定义常用的数学概念及其需要计算的结果
定义结构体的类型
struct 自定义类型名{成员;成员;}
成员之间用分号隔开
成员是其它数据类型
成员需要外部访问要用public
定义结构体的变量
数据类型 变量名 = 初始值;
Student xiaoMing = new Student();//一次性给结构体里所有变量附初值
数组 冒泡排序
//1、先写内循环,循环次数为:数组长度-1-外循环当前次数
//2、内循环每次对比当前位置与下一位置,如果逻辑(当前位大于对比位)达成 则交换位置
//3、外循环,循环次数为 数组长度-1
for (int i = 0; i < array.Length - 1; i++)
{
for (int j = 0; j < array.Length - 1 - i; j++)
{
if (array[j] > array[j + 1])
{
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
二维数组也是解决重复数据的重复逻辑,不同的是他允许我们通过两(多)个下标
为什么用多个下标,人们在生活,经常需要处理二维的数据,地图,表单(纯三维数据特别的少)
本质上,内存中一维和二维数组是一样的
使用二维数组
定义二维数组
不指定元素
数据类型[,] 变量名;
指定元素
数据类型[,] 变量名 = new 数据类型[标号为0维度的元素个数,标号为1维度的元素个数]
数据类型[,] 变量名 = new 数据类型[行数,列数]
数据类型[,] 变量名 = new 数据类型[x,y]
交错数组与多维数组的区别
交错数组理论上才是数组的数组
1、多维数组必须是每一个维度的元素个数相等,多维数组只能表示矩形数据块
交错数组可以表示锯齿数据块
2、多维数组必须是指定每一个维度的元素个数
交错数组只能指定最外层的数组个数
3、多维本质上是一块连续内存空间,为什么是多维表示,为了人们方便去理解,多维和一维只是索引器不一样
交错数组理论上才是数组的数组
定义一个交错数组
数据类型[][]变量名;
数据类型[][]变量名 = new 数据类型[4][]{new int[10],new int[5],new int[10],new int[5],}
数据类型[][]变量名 = new 数据类型[4][];
m1w2d6_debug
string.IsNullOrEmpty(s);//判断字符串是否为空
String.Split
1、用字符串分隔:
string str1 = "aaajsbbbjsccc";
string[] sArray1 = Regex.Split(str1, "js", RegexOptions.IgnoreCase);
foreach (string i in sArray1) Console.Write(i.ToString() + "\r\n");
Console.WriteLine("\r\n");
2、用单个字符来分隔:
string str3 = "aaajbbbjccc";
string[] sArray3 = str3.Split('j');
foreach (string i in sArray3) Console.Write(i.ToString() + "\r\n");
Console.WriteLine("\r\n");
3、用多个字符来分隔:
string str2 = "aaajbbbscccjdddseee";
string[] sArray2 = str2.Split(new char[2] { 'j', 's' });
foreach (string i in sArray2) Console.Write(i.ToString() + "\r\n");
Console.WriteLine("\r\n");
SubString 方法:
string str = "abcdefgh";
Response.Write(str.Substring(0, 1));//return:a
Response.Write(str.Substring(2, 3));//return:cde
Response.Write(str.Substring(7, 1));//return:h
Response.Write(str.Substring(7));//return:h
Response.Write(str.Substring(10));//error:startIndex 不能大于字符串长度。
Response.Write(str.Substring(7, 10));//error:索引和长度必须引用该字符串内的位置。
m1w2d6_function_flyingchess
函数是对逻辑(语句序列)的封装,方便以后重复使用
函数的签名{函数体}
指令逻辑(什么指令) 对谁(参数) 做什么(函数体) 结果如何(返回类型)
参数 可以是任意类型
函数体 可以是任意语句
返回类型 可以是任意类型 void(无返回类型)
如果指定了返回类型 必须有相应的返回值
使用return可以返回一个值,并结束函数
如果你使用了void,也可以使用return,这时,他不再返回值,但结束函数
返回类型 函数名 (参数列表)
{
函数体
}
m1w3d1_function_parm_overload_oop
ref关键字
在定义方法时 使用 参数修饰 ref 我们可以传递一个地址
1,定义方法参数使用ref关键字,调用时同时也可使用
2,调用时,实际参数必须有被赋值
函数的重载
函数允许我们重名,重名函数在重载的情况下是允许的
参数列表不一样时构成重载
重载函数有助我们统一理解
1、参数个数不一样
2、类型和顺序不一样
递归的调用
函数递归 指 函数自身 调用自身的 一种算法
在算法没有写错的情况 所以他有可能会造成 堆栈溢出异常
一般用递归解决子问题就是父问题的问题
边界 在递归过程中,我们必须得有一种已知情况
边界参数要交给自己
边界参数要无尽的趋向边界
值类型与引用类型的存储方式:
引用类型:引用类型存储在堆中。类型实例化的时候,会在堆中开辟一部分空间存储类的实
例。类对象的引用还是存储在栈中。
值类型:值类型总是分配在它声明的地方,做为局部变量时,存储在栈上�
LilyCoder
- 粉丝: 1143
- 资源: 304
最新资源
- java毕设项目之ssm安徽新华学院实验中心管理系统的设计与实现+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm毕业lw管理系统+vue(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm毕业生就业信息统计系统+vue(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm大学生兼职平台的设计与开发+jsp(完整前后端+说明文档+mysql).zip
- java毕设项目之ssm博客系统的设计与实现+vue(完整前后端+说明文档+mysql).zip
- java毕设项目之ssm单位人事管理系统+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm电子竞技管理平台的设计与实现+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm房屋租售网站的设计与实现+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm高校专业信息管理系统设计与实现+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm会员管理系统+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm基于 Java Web 的校园驿站管理系统+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm基于JavaEE的龙腾公司员工信息管理系统的设计与实现+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm基于Java的菜匣子优选系统设计与实现+jsp(完整前后端+说明文档+mysql+lw).zip
- 大题解题方法等4个文件.zip
- java毕设项目之ssm基于JavaWeb的家居商城系统的设计与实现+jsp(完整前后端+说明文档+mysql+lw).zip
- java毕设项目之ssm基于Java的汽车客运站管理系统的设计与实现+jsp(完整前后端+说明文档+mysql+lw).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈