学C3学了2周,有点小心得,在这里分享一下
1.数据类型
整数型按字节排序:
byte,sbyte,short ushort,int,uint,long,ulong
浮点型按字节排序为:
float,double,decimal
字符型
char
数据之间的转换方式
(以整数为例)
强制转换方式:
int a = Convert.ToInt16(Console.ReadLine());
//这里int有16/32/64位三种格式
int a =int.Parse(a);
判断语句
第一种
if(条件表达式1)
{
}
else if(条件表达式2)
{
}
else
{
}
第二种
switch(条件表达式)
{
case1:(语句1,break;)
case2:(语句2,break;)
·
·
·
casen:(语句n,break)
}
循环语句
第一种
for(定义变量,条件,自增)//或自减,for循环里面可以加入一个新的for循环,称为嵌套循环。
{
}
第二种
while循环//while循环有while循环,do-while循环;
数组
一维数组
冒泡排序
int[] Array= { //任意数组元素组成 };
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 m = Array[j + 1];
Array[j + 1] =Array[j];
Array[j] = m;
//从大到小写大于,先写m等于小的,最后写大的等于m,而不是m等于大的;
}
}
}
for (int i = 0; i < Array.Length; i++)
{
Console.Write(Array[i]+" ");
}
选择排序
int[] Array = { //同上 };
intminValue = 0;
//声明一个空变量,存储选择的数;
intminIndex = 0;
//声明一个变量存储该数组的下标;
for (int i = 0; i < Array.Length - 1; i++)
//第一层循环,实现选择一个数
{
minValue = Array[i];
//每趟吧数组的数放到这个变量中;
minIndex = i;
//同时记录下标;
for (int j = i + 1; j < Array.Length; j++)
//从而比较Array[i]和Array[i+1];
{
if(minValue > Array[j])
//判断变量中的数是否比后面的大;
{
minValue = Array[j];
//如果大,把这个小的数再存到变量中。继续比较;
minIndex = j;
}//if循环是判断,当if循环不成立跳出到内部for循环开始第二遍查找;
}
//实现数组数据的交换
Array[minIndex] = Array[i];
Array[i] = minValue;
}
Console.Write("int[] Array = {");
for (int i = 0; i < Array.Length - 1; i++)
{
Console.Write(Array[i]+ " ,");
}
Console.Write(Array[A.Length]);
Console.Write("}");
二分数组
// 1 2 3 4 5 6 7
int[] array01 = { 88,90, 100, 103, 110, 125, 150 };
// 0 1 2 3 4 5 6
//最小数的标签
int low= 1;
//最大数的标签
int high= array01.Length;
//要查找的数
inttarget = int.Parse(Console.ReadLine());
//循环实现查找,条件:
while (low<= high)
{
// 二分求中间数的标签
int mid= (low + high) / 2;
//求数组下标,进行判断是否与要查找的数相等
if(array01[mid - 1] == target)
{
Console.Write("找到了");
return;
}
elseif (array01[mid - 1] > target)
{
//丢掉右边,向左找
high = mid - 1;
//继续循环
continue;
}
else
{
//向右查找
low = mid + 1;
continue;
}
}
Console.Write("没找到");
二维数组
int [,]Array =new int {,};
初等编程语言函数
有返回值的函数
static 数据类型 XXX(int a)
//这里XX输入的是在class program这个类中可以调用的函数名称;
{
return a=10;
}
无返回值
static void XXX(int a)
{
}
类
调用类
类中对象的初始化
Set为赋值,Get为取值,切记调用顺序不要搞混,
比如
class Mid
{
string ai;
string bi;
public void Mid(String a,String b)
{
ai =a;
bi=b;
//这里给上面的成员变量赋予了初始值;
}
public void SetAi(string a)
{
string a ="ahasbajbkj"
}
public void GetAi()
{
return a;
}
}
继承
需要牢记三个常用修饰符的区别
private(私有权限,不可被类外函数访问,不可被子类继承)
public(公有权限,可以被所有类外调用,可被子类继承)
protected(保护权限,可以被子类继承,不可被类外函数调用,如果想要调用,可以用方法)
protected可以被类外函数调用的方法:
class Circle
{
protected double r;
public void setR(int newR)
{
r = newR;
}
//只在当前类使用
private double avg(double x)
{
return x * x;
}
public double GetArea()
{
return this.avg(r) * 3.14;
}
}
以及public和static的区别
static只能在类中调用
public上面已经说过。
书签题目
定义一个名为网站的类
对象(属性有网址,标题,星级,访问度)
step1 初始化对象
step2赋值取值(set,get)
step3增加书签
step4查询书签
step5删除书签
step6查询标题修改网址
step7根据星级排列网址
遍历算法:
public URLItem FindURLItem(String title) {
foreach (URLItem item in list) {
//item遍历了每一个书签,我们要比对,item的标题和title
if (item.GetTitle() == title) {
return item;
}
//如果有进行删除
List.Remove(item);//从列表里移出item,因为已经找到了所找的title
//就是item,所以只需要删除item就可以了;
Console.WriteLine("书签{0}已被删除", title);
return true;
}