C#编程基础(简单概述与理解)
1、C#变量和数据输入
C#常用到的几个数据类型:
整型:int 说明:32位有符号整数 范围:-2³¹~2³¹-1
浮点型:double 说明:64位双精度浮点数 范围:±5.0×10-﹣³²~±1.7×10³º
布尔型:bool 值:true和false 字符串型:0个或多个字符组成的字符串
变量概念:
变量就是一块存储空间,存储的值在程序运行过程中是可以不断变化的。
C#变量命名规范:
- 变量名只能由数字、字母和下划线组成
- 变量名的第一个字符只能是字母或下划线,不能是数字
- 不能使用C#中的关键字、类名等作为变量名
- 通常变量名的首字母小写、如果变量名是多个单词组成,那么出第一个单词的首字母小写之外,其他单词的首字母均为大写(驼峰命名法)
注:一般变量名都全是字母组成的,不要与C#中的关键字、类名相同就行
C#变量的赋值基础语法:
int x=34; //定义变量y
y=100; //给y赋值
int i=100+10*5; //把表达式的结果赋值给变量i;
C#变量的输出:
Console.WriteLine("殿下,请输入您的大名:"); string Name = Console.ReadLine(); Console.WriteLine("殿下,请输入您的芳龄"); int Age =int.Parse(Console.ReadLine());
C#变量的输出:
Console.WriteLine();//输出了一行空行 (换行) Console.WriteLine("明星:","票价:","GD","1000");//中有两个格式字符 {},{1}后面的两个数据,“GD”和“1000”按顺序放在其中的一个位置显示 Console.WriteLine("I LOVE YOU");//有换行效果 Console.Write("I LOVE YOU");//没有换行效果 //Console.WriteLine("注销快捷键与注释效果"); //ctrl+k+c Console.WriteLine("取消注销快捷键与注释效果");//ctrl+k+u
C#变量的输出2:
Console.WriteLine("地址:{0}","珠海");//在C#中,格式字符串的参数是从0开始计算的 int HYX = 520;//定义整型变量并赋值 Console.WriteLine(""+HYX);//提示文字+HYX的值
C#数据类型的转换:
隐式转换:主要是用于安全的类型转换,由系统自动完成。
int x = 33; double y = x;//int类型转换成了double类型储存 int z = 'Q';//char类型转换成了int类型储存
显示转换:也叫强制转换,它的基本语法是这样的(目标类型)(表达式)。
double x= 33.44; int y = (int)x;//将x转成整型 float z = (float)(z + 30);//将表达式转换成单精度浮点型
2、C#运算符和选择语句
C#赋值运算符:
运算符 | 运算规则 | 意义 |
= | 将表达式赋值给变量 | 将右边的值给左边 |
+= | x+=y | x=x+y |
-= | x-=y | x=x-y |
*= | x*=y | x=x*y |
\= | x/=y | x=x/y |
%= | x%=y | x=x%y(%用于求余数) |
使用运算符来解决一个问题:
int x = 30, y = 40, temp; Console.WriteLine("交换前的数据:x={0},y={1}",x,y); //开始交换数据 temp = x; x = y; y = temp; Console.WriteLine("交换后的数据:x={0},y={1}",x,y);
C#算术运算符:
运算符 | 运算规则 | 意义 |
+ | x+y | 执行加法运算 |
- | x-Y | 执行减法运算 |
* | x*y | 执行乘法运算 |
/ | x/y | 执行除法运算,得到商的值 |
% | x%y | 执行除法运算,得到余数的值 |
++ | x++或++x | 自增1 |
-- | x--或--x | 自减1 |
C#关系运算符:
运算符 | 运算规则 | 示例 | 结果 |
== | x==y | 10==20 | false |
!= | x!y | 10!20 | true |
> | x>y | 10>20 | true |
>= | x>=y | 10>=20 | fa;se |
< | x<y | 10<20 | true |
<= | x<=y | 10<=20 | true |
C#逻辑运算符:
运算符 | 运算规则 | 意义 |
&&(与) | A&&B | A和B同时为true,结果为true注意:当A为false,B不需要计算 |
||(或) | A||B | A和B只要一个为true,结果为true注意:当A为true,B不需要计算 |
!(非) | !A | A为true,结果为false;A为false,结果为true; |
C#运算符的优先级:
优先级 | 运算符 |
高 | () |
前缀++,前缀--,! | |
*,/,% | |
+,- | |
<,<=,>,<= | |
=,!= | |
&& | |
|| | |
=,+=,-=,*=,/=,%= | |
低 | 后缀++,后缀-- |
C#选择语句1:
Console.WriteLine("请输入您的国籍哈!"); string country = Console.ReadLine(); if (country == "中国") { Console.WriteLine("您是爱好和平的伟大中国人!"); } else { Console.WriteLine("你好黑鬼!(注:纯属搞笑的)"); }
C#选择语句2:
int 月; Console.WriteLine("请输入一个月份:"); 月 = Convert.ToInt32(Console.ReadLine()); if (月 >= 1 && 月 <= 12) { Console.WriteLine("{0}您输入的月份正确!", 月); } else { Console.WriteLine("{0}您输入的月份错误!", 月); }
C#选择语句3:
Console.WriteLine("请输入您的性别:"); string 性别 = Console.ReadLine(); Console.WriteLine("请输入您的年龄:"); int 年龄 = Convert.ToInt32(Console.ReadLine()); if (性别 == "男") { if (年龄 >= 22) { Console.WriteLine("你是{0}性,今年{1}岁,您已达法定结婚年龄", 性别, 年龄); } else { Console.WriteLine("你是{0}性,今年{1}岁,您未达法定结婚年龄", 性别, 年龄); } } else { if (年龄 >= 20) { Console.WriteLine("你是{0}性,今年{1}岁,您已达法定结婚年龄", 性别, 年龄); } else { Console.WriteLine("你是{0}性,今年{1}岁,您未达法定结婚年龄", 性别, 年龄); } }
C#选择运算器:
int x, y; Console.WriteLine("请输入第一个数:"); x = Convert.ToInt32(Console.ReadLine());//x = int.Parse(Console.ReadLine()); Console.WriteLine("请输入第二个数:"); y = int.Parse(Console.ReadLine()); Console.WriteLine("请输入ysf:+,-,*,/"); string ysf = Console.ReadLine(); if (ysf == "+") { Console.WriteLine("{0}+{1}={2}", x, y, x + y); } if (ysf == "-") { Console.WriteLine("{0}-{1}={2}", x, y, x - y); } if (ysf == "*") { Console.WriteLine("{0}*{1}={2}", x, y, x * y); } if (ysf == "/") { Console.WriteLine("{0}/{1}={2}", x, y, x / y); }
3、C#循环
C#中的四种循环结构:
- for循环
- whie循环
- do...while循环
- foreach循环
for循环语法结构:
for(表达式1;表达式2;表达式3;)
{
语句块;
}
for循环案例1+2+3...20的和:
int sum = 0;//存放和的变量 { for (int i = 1; i < 20; i++) { sum += i;//累加所有数的和 } Console.WriteLine("1到20之间整数和为:{0}",sum); }
while循环语法结构:
while(布尔表达式)
{
语句块;
}
while循环案例输出1-8的整数:
int i = 1; while(i<=8) { Console.WriteLine(i); i++;//注意:这里需要修改i的值 }
do...while循环结构语法:
int i = 1; do { Console.WriteLine(i); i++;//注意:这里需要修改i的值 }while(i<=8);
C#嵌套循环的使用案例:
C#嵌套循环输出10行1~8之间的整数:
for (int i = 1; i <= 10; i++)//外循环,i控制行 { for (int j = 1; j <= 8; j++)//内循环,j控制列 { Console.WriteLine(j + "");//输出j } Console.WriteLine();//输出一行整数后再换行 }
运行图:
C#镶套循环输出直角三角形:
for(int i=1;i<=5;i++) { for(int j=1;j<=i;j++)//外层循环,i用于控制行数的变化 { Console.Write("▲");//内层循环,j用于控制列数的变化 } Console.WriteLine();//打印完一行后换行 }
运行图:
C#镶套循环输出九九乘法表:
for(int i=1;i<=9;i++) { for(int j=1;j<=i;j++) { Console.Write("{0}*{1}={2}\t",i,j,i*j); } Console.WriteLine(); }
运行图:
4、C#数组
C#一位数组的声明:
数据类型 [ ] 数组名称;
C#数组的初始化:
(1)指定数组存储的元素序列,语法格式结构如下:
数据类型 [ ] 数组名称={值1,值2,值3,...,值n};
(2)指定数组长度,使用new关键字初始化数组,语法结构下:
数据类型 [ ] 数组名称=new 数据类型[长度];
注意:数组里只能储存数据类型相同的数据!!!
注意:数组里只能储存数据类型相同的数据!!!
注意:数组里只能储存数据类型相同的数据!!!
Arrays.short();(升序)
例子:
int [ ] a={1,2,3}; 第一钟方式,长度为3(因为我们初始化了3个值)
int [ ] b=new int [4]; 第二种方式,长度为4
int [ ] c=new int [4] {1,2,3,4}; 这两种形式的结合,数组长度必须和元素个数匹配
int [ ] d=new int [ ] {1,2,3,4,5,6,7} 初始化了元素,长度可以省略
C#一维数组循环案例:
string[] lx = new string[5]; for (int i = 0; i < lx.Length; i++) { Console.WriteLine("请输入第{0}种军用飞机类型:", i + 1); lx[i] = Convert.ToString(Console.ReadLine()); Console.WriteLine("是否继续输入(y/n)?:"); string a = Console.ReadLine(); if (a == "n") { Console.WriteLine("信息输入完毕!"); break; } }
运行图:
C#一位数组求和与平均值:
int sum = 0;//累加 int n = 10;//决定用户输入的个数 int[] num = new int[n];//保存用户输入的10个数 //接收用户输入的10个数 for(int i=0;i<num.Length;i++) { Console.WriteLine("请输入第{0}个数:",i+1); num[i] = Convert.ToInt32(Console.ReadLine()); sum = sum + num[i];//求和 } Console.WriteLine("\n您输入的数之和为:"+sum); Console.WriteLine("您输入的数平均值为:"+(sum*1.0/num.Length));
运行图:
5、类与对象
类的概念:
泰迪是狗,加菲猫是猫,海绵宝宝是海绵,它们都是不同类型的事物,这里就体现了什么叫做类(区别、分类)
对象的概念:
假如有一堆的书,而《大主宰》是其中的具体一本,我们可以把《大主宰》这本书理解成就是一个对象。
属性的概念:
眼前有个妹纸,她叫小美她的特点是很漂亮,小美是具体的一个对象,她的特征是漂亮,这个特征在程序中就相当于属性。
方法的概念:
方法是一种执行的方式,它调用等于一个军师,告诉调用它的对象它能做些神马。
定义类的语法结构:
[访问修饰符] class 类名
{
类的成员;
}
定义字段的语法结构:
[访问修饰符] 数据类型 字段名称;
属性定义语法如下: 自动属性定义语法如下:
[访问修饰符] 数据类型 属性名称 [访问修饰符] 数据类型 属性名称{get;set;}
{
get{return 字段;}
set{字段=value;}
}
构造方法定义语法如下:
[访问修饰符] 类名([参数列表的])
{
构造方法的主体;
}
对象定义语法如下:
类名 对象名=new 类名([参数列表]); 对象.属性=值;//赋值 变量=对象名.属性;//取值
实例方法的语法如下:
[访问修饰符] 返回类型 方法名([参数列表])
{
方法主体;
}
方法的参数:
[访问修饰符] 返回类型 方法名称([参数类型 参数名称1,参数类型 参数名称2,……,参数类型 参数名称n])
{
方法体
}
方法的返回值:
return 表达式;
实例方法的调用:
对象名.方法名([参数]); //对于没有返回值的方法
变量名=对象名.方法名([参数]); //对于有返回值的方法
静态方法:
[访问修饰符] static 返回类型 方法名 ([参数列表])
{
方法体;
}
静态方法的调用:
1.静态的方法或变量是长期住留在内存中,直到程序关闭这个软件才会在内存中消失
2.静态方法的调用是无需构建对象类访问,直接用类名打点调用
3.静态方法内要访问本类中的成员变量时,该成员变量也必须是静态的