1、变量类型
int double string char bool decimal
变量的使用规则:先声明再赋值最后使用
int number;
number=10;
number=20;
Console.WriteLine(number);
2、Camel Pascal
3、运算符
赋值运算符:=
复合赋值运算符:+= -= *= /= %= sum+=age; sum=sum+age;
算数运算符: + - * / % ++ –
关系运算符: > < >= <= == !=
逻辑运算符: && || !
4、c#中的语法结构
分支结构:
if if-else
选择结构:
while do-while for
5、常量
声明的常量的语法:
const 变量类型 变量名=值;
什么时候会用到常量?
6、枚举
语法:
[public] enum 枚举名
{
值1,
值2,
值3,
…
}
public:访问修饰符。公开的公共的,哪都可以访问。
enum:关键字,声明枚举的关键字
枚举名:要符合Pascal命名规范
将枚举声明到命名空间的下面,类的外面,表示这个命名空间下,所有的类都可以使用这个枚举。
枚举就是一个变量类型 ,int–double string decimal.
只是枚举声明、赋值、使用的方式跟那些普通的变量类型不一样。
我们可以将一个枚举类型的变量跟int类型和string类型互相转换。
枚举类型默认是跟int类型相互兼容的,所以可以通过强制类型转换的语法互相转换。
当转换一个枚举中没有的值的时候,不会抛异常,而是直接将数字显示出来。
枚举同样也可以跟string类型互相转换,如果将枚举类型转换成string类型,则直接调用ToString().
如果将字符串转换成枚举类型则需要下面这样一行代码:
(要转换的枚举类型)Enum.Parse(typeof(要转换的枚举类型),“要转换的字符串”);
如果转换的字符串是数字,则就算枚举中没有,也会不会抛异常。
如果转换的字符串是文本,如果枚举中没有,则会抛出异常。
7、所有的类型都能够转换成string类型,调用ToString()。
8、结构
可以帮助我们一次性声明多个不同类型的变量。
语法:
[public] struct 结构名
{
成员;//字段
}
变量在程序运行期间只能存储一个值,而字段可以存储多个值。
9、数组
一次性存储多个相同类型的变量。
语法:
数组类型[] 数组名=new 数组类型[数组长度];
***数组的长度一旦固定了,就不能再被改变了
10、冒泡排序:就是将一个数组中的元素按照从大到小或者从小到大的顺序进行排列。
int[] nums={9,8,7,6,5,4,3,2,1,0}; 0 1 2 3 4 5 6 7 8 9
第一趟比较:8 7 6 5 4 3 2 1 0 9 交换了9次 i=0 j=nums.Length-1-i
第二趟比较:7 6 5 4 3 2 1 0 8 9 交换了8次 i=1 j=nums.Length-1-i
第三趟比较:6 5 4 3 2 1 0 7 8 9 交换了7次 i=2 j=nums.Length-1-i
第四趟比较:5 4 3 2 1 0 6 7 8 9 交换了6次 i=3 j=nums.Length-1-i
第五趟比较:4 3 2 1 0 5 6 7 8 9 交换了5次
第六趟比较:3 2 1 0 4 5 6 7 8 9 交换了4次
第七趟比较:2 1 0 3 4 5 6 7 8 9 交换了3次
第八趟比较:1 0 2 3 4 5 6 7 8 9 交换了2次
第九趟比较:0 1 2 3 4 5 6 7 8 9 交换了1次
for(int i=0;i
for(int j=0;j
if(nums[j]>nums[j+1])
{
int temp=nums[j];
nums[j]=nums[j+1];
nums[j+1]=temp;
}
}
}
11、方法
函数就是将一堆代码进行重用的一种机制。
函数的语法:
[public] static 返回值类型 方法名([参数列表])
{
方法体;
}
public:访问修饰符,公开的,公共的,哪都可以访问。
static:静态的
返回值类型:如果不需要写返回值,写void
方法名:Pascal 每个单词的首字母都大些。其余字母小写
参数列表:完成这个方法所必须要提供给这个方法的条件。如果没有参数,小括号也不能省略。
方法写好后,如果想要被执行,必须要在Main()函数中调用。
方法的调用语法:
类名.方法名([参数]);
***在某些情况下,类名是可以省略的,如果你写的方法跟Main()函数同在一个类中,这个时候,
类名可以省略。
12、return
1、在方法中返回要返回的值。
2、立即结束本次方法。
1、异常捕获
我们在程序中经常会出现各种各样的异常,你如果想要你的程序变得坚强一些。
在你的代码中应该经常性的使用try-catch来进行异常捕获。
哪行代码有可能出现异常,你就踹它一脚。
语法:
try
{
可能会出现异常的代码;
…
…
…
}
//try和catch之间不能有其他的代码
catch
{
出现异常后要执行的代码;
}
执行过程:如果try中的代码没有出现异常,那么catch中的代码不会执行。
如果try中的代码出现了异常,那怕这行出现异常的代码后面还有一百行都不会执行了,
而是直接跳到catch中执行代码
2、变量的作用域
变量的作用域就是你能够使用到这个变量的范围。
变量的作用域一般从声明它的那个括号开始到那个括号所对应的结束的括号结束。
在这个范围内,我们可以访问并使用变量。超出这个范围就访问不到了
3、switch-case
用来处理多条件的定值的判断。
语法:
switch(变量或者表达式的值)
{
case 值1:要执行的代码;
break;
case 值2:要执行的代码;
break;
case 值3:要执行的代码;
break;
…
default:要执行的代码;
break;
}
执行过程:程序执行到switch处,首先将括号中变量或者表达式的值计算出来,
然后拿着这个值依次跟每个case后面所带的值进行匹配,一旦匹配成功,则执行
该case所带的代码,执行完成后,遇到break。跳出switch-case结构。
如果,跟每个case所带的值都不匹配。就看当前这个switch-case结构中是否存在
default,如果有default,则执行default中的语句,如果没有default,则该switch-case结构
什么都不做。
4、循环结构
while循环:
while(循环条件)
{
循环体;
}
执行过程:程序运行到while处,首先判断while所带的小括号内的循环条件是否成立,
如果成立的话,也就是返回一个true,则执行循环体,执行完一遍循环体后,再次回到
循环条件进行判断,如果依然成立,则继续执行循环体,如果不成立,则跳出while循环。
在while循环当中,一般总会有那么一行代码,能够改变循环条件,使之终有一天不再成立,
如果没有那么一行代码能够改变循环条件,也就是循环条件永远都成立,我们称之这种循环
叫做死循环。
最简单的最常用的死循环:
while(true)
{
}
特点:先判断,再执行,有可能一遍循环都不执行。
5、break
1)、可以跳出switch-case结构。
2)、可以跳出当前循环。
break一般不单独的使用,而是跟着if判断一起使用,表示,当满足某些条件的时候,就不再循环了。
6、do-while循环。
语法:
do
{
循环体;
}while(循环条件);
执行过程:程序首先会执行do中的循环体,执行完成后,去判断do-while循环的循环条件,
如果成立,则继续执行do中的循环体,如果不成立,则跳出do-while循环。
特点:先循环,再判断,最少执行一遍循环体。