C#语言基础
一、语言基础
(一)、函数的四要素:
名称,输入,输出,加工
(二)、主函数、输出语句、输入语句:
Static void Main(string[] args)//下划线部分可以自己指定
{
主函数的内容
}
Console.WriteLine();//输出语句,自动换行
Console.Write();//输出语句,不自动换行
Console.ReadLine();//输入语句
(三)、注意:
1、大小写敏感
2、所有的符号都要用英文
3、不要漏掉 “;”
(四)、注释和取消注释
1.选中相应的行,点击工具栏中的注释选中行[取消注释选中行];
2.选中相应的行,使用快捷键:Ctrl+K Ctrl+C [Ctrl+K Ctrl+U]
3.手动注释:在不要的行前面加//(注释一整行)
4.注释其中一段代码:/*这里面是代码 */
5.注释的作用://这两行是输出的功能
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; //以上的语句是引用的一部分类库 //命名空间,取决于我们起好的项目名称 namespace 了解语言基础 { //类 Progroam class Program { //主函数 程序的入口 static void Main(string[] args) { ////输出语句 ///*注释一段内容*/ ////注释一整行内容 //Console.Write("请输入您的姓名:"); ////Console.WriteLine("Hello World!"); ////输入语句 //string a = Console.ReadLine();//指直接收到回车命令为止,之前所有输入的内容全部获取 //Console.WriteLine("您刚刚输入的姓名是:"+a); ////加号在遇到字符串类型的时候表示拼接 //Console.ReadLine(); //练习:输入您的姓名、年龄、工作单位,拼成一句完整的话 //我叫***,今年**岁了,在***工作 Console.Write("请输入您的姓名:"); string a = Console.ReadLine(); Console.Write("请输入您的年龄:"); string b = Console.ReadLine(); Console.Write("请输入您的单位:"); string c = Console.ReadLine(); Console.WriteLine("我叫" + a + ",今年" + b + "岁了,在" + c + "工作。"); //{}占位符:先占下一个空位,用逗号分隔开 //Console.WriteLine("我叫{0},今年{1}岁了,在{2}工作。",a,b,c); Console.ReadLine(); //再练习 //Console.Write("请输入您的姓名:"); //string a = Console.ReadLine(); //Console.Write("请输入您的年龄:"); //string b = Console.ReadLine(); //Console.Write("请输入您的工作单位:"); //string c = Console.ReadLine(); //Console.WriteLine("我叫"+a+",今年"+b+"岁了,在"+c+"工作。"); //Console.ReadLine(); } } }
二、数据类型
(一)引用类型
1、string 等同于字符型,长度较长,定义是用双引号
举例:string a = "hello"; string b = "h";
2、类类型
object所有其他类型的最终基类
3、接口类型
interface
4、数组类型
一维和多维数组,如int[]和int[,,,,]
(二)变量、常量
1、变量名的命名规则:
(1)变量名组成:字母,数字,下划线,@,汉字。
(2)首字母只能用字母,下划线,@,汉字
(3)不能与关键字重名
2、变量的定义:
数据类型 变量名 [=值]; //[]内的值可以不写
例子:int a=1;
3、变量名前加关键字(不能赋值,只能取值):const
例子:const int a=1;
(三)基本的类型转换:
1、自动转换(隐式转换)--从值类型转换到引用类型时候
2、强制转换(显式转换)--从引用类型转换到值类型时候,或者从浮点型转换到整形
当从一个引用类型转换到值类型时,必须引用类型中的数据元素,能够转换成值类型的容量范围内的数据才行,否则不能转。
static void Main(string[] args) { ////值类型 ////整数类型 //int a = 2; //long b = 2222222222222; ////浮点型,输入小数默认为double类型,用其他类型需加后缀 //double c = 3.14; //float d = 3.14f; //decimal e = 3.14m; ////布尔型:只允许放true或false //bool f = true; ////bool g = 2;这是错误的 ////字符串类型:引用类型 //string h = "123"; //int aa=1,bb,cc=5;//定义多个变量,用逗号隔开,可以赋值也可以不赋值 //Console.Write(" "");//换行 //Console.Write(123); //Console.ReadLine(); ////常量:只允许取值,不允许重新赋值 //const int aaa = 5; ////aaa=8;这是错误的,只允许取值,不允许重新赋值 //类型转换 int a; double b = 3.4; a = (int)b;//将b强制转换为int类型,并赋值给a a = Convert.ToInt32(b); a = int.Parse(b.ToString());//常用 //int.Parse需要放置的是值类型 }
三、条件运算符: ? :
判断是否正确,正确取冒号前面的值,不正确取冒号后面的值
static void Main(string[] args) { ////条件运算符 ?: 三元运算符,三目(需要有三个值) //int a = 5; //int b = 8; //int c = a > b ? 1 : 0; //string c = a > b ? "对" : "错";//可以写成string类型 //Console.WriteLine(c); //Console.ReadLine(); //练习:老狼老狼几点了? //输入:现在的小时数 //判断是am还是pm //若是pm,减去12小时报时 Console.Write("老狼老狼几点了:"); int a = int.Parse(Console.ReadLine()); int b = a - 12; string c = a > 12 ? b + "点pm" : a + "点am"; Console.WriteLine("现在是" + c); Console.ReadLine(); //练习 //Console.Write("老狼老狼几点了:"); //int time=int.Parse (Console.ReadLine()); //string shijian = time > 12 ? (time - 12) + "点pm" : time + "点am"; //Console.WriteLine("现在是"+shijian); //Console.ReadLine(); }
四、运算符
分类 |
符号 |
解释 |
优先级 |
算数 |
++ -- |
加加 减减 |
由高到低,即执行顺序由上到下.(圆括号的优先级最高) |
*/% |
乘 除 取余 |
||
+ - |
加 减 |
||
关系 |
> < >= <= |
大于 小于 大于等于 小于等于 |
|
== != |
等于 不等于 |
||
逻辑 |
&& |
与(并且) |
|
|| |
或 |
||
! |
非(注:优先级在此表的最顶层) |
||
条件运算符 |
?: |
惟一的一个三元运算符 如果 |
|
赋值 |
= += -= *= /= %= |
如:x-=4.即x=x-4; |
(一)算数运算符:
1、+ - * / % ++ --
注意:
(1)做除法运算的时候,如果两个操作都是整数,则运算之后的结果也是整数。
(2)做算数运算的时候,如果两个被操作的数不是同一类型,则会在运算的时候会自动进行类型转换。
2、% 模 取余的用途
(1)判断a是不是b的倍数(是否能够整除)====>a%b是否==0
(2)判断a的个位是不是b====>a%10是否==b
(3)把数变成某个范围之内的数(利用余数一定比除数小的定理,比如十六进制里面最大的单个数是F(15))
3、++ --
int a =5;
int b= a++; ====>可以写成int b =a; a = a+1;
int c = ++a;====>可以写成a = a+1; int c =a;
运算出来的结果就是
b = 5;
c = 7;
注意:(1)++ --这两种运算只能应用于变量(5++是不对的!!常量也是不可以使用的!!)
(2) 在赋值运算中,前++是先执行+1运算,然后再进行赋值
(3)后++是先执行赋值,在执行+1运算
(二)关系运算符:
== (程序里的等于) != (不等于)> < >= <=
关系运算符运算结果统统是bool型(结果不是Ture就是False)
int a = 5;
int b = 6;
Console.WriteLine(a == b); ====>False
Console.WriteLine(a != b); ====>True
Console.WriteLine(a > b); ====>False
Console.WriteLine(a < b); ====>True
Console.WriteLine(a >= b); ====>False
Console.WriteLine(a <= b); ====>True
注意:== 不能写成 =(一个=是赋值的意思)
(三)逻辑运算符:
&& 与(并且) || 或 ! 非
&&====>两个条件都成立,结果为True,否则False
||====>两个条件只要有一个成立,结果为True,两个都不成立为False
!====>将原来的结果取相反的(若本来为True,取反就是False)
(四)其他运算
= ====>赋值运算,将后面的值赋给左侧的变量。(注意:只能是变量)
+= -= *= /= %= ====>复合运算符(例:a += b;(意思是a = a +b;))
static void Main(string[] args) { ////运算符 ////算术运算符 ////++ -- //int a = 3; ////a++ ;//a= a + 1; ////++a ;//a= a + 1; ////前++与后++不一样的举例 ////在赋值运算中,前++是先执行+1运算,然后再进行赋值 ////后++是先执行赋值,在执行+1运算 //int b = a++;//可以理解为int b=a;a=a+1 //int c = ++a;//a=a+1;int c=a; //Console.WriteLine(b); //Console.WriteLine(c); //Console.ReadLine(); ////两个数据类型不同的值进行运算的时候,会自动取范围更大的那个类型 ////* / % //int a = 3; //double b = 6; //Console.WriteLine(a * b); //Console.WriteLine(a / b); //Console.WriteLine(a % b); ////+ - //Console.WriteLine(a + b); //Console.WriteLine(a - b); //Console.ReadLine(); ////关系运算符 ////> < >= <= //int a = 5; //int b = 8; //Console.WriteLine(a > b);//bool f=a>b; //Console.ReadLine(); ////== != //Console.WriteLine(a == b); //Console.ReadLine(); ////逻辑运算符 //// && 表示两个条件同时满足才是true,否则是false //// || 表示两个条件满足其中一个就是true,否则false //// ! 表示若现在的结果是true则改成false ////条件运算符:判断是否正确,正确取冒号前面的值,不正确取冒号后面的值 ////? : ////赋值运算符 ////= += -= *= /= %= //int a = 5; //a += 5;//a=a+5; //a -= 4;//a=a-4; //a *= 5;//a=a*5; //a /= 3;//a=a/3; //a %= 3;//a=a%3; //Console.WriteLine(a); //Console.ReadLine(); //练习:请输入一个100以内的整数,查看是否与7有关 //7的倍数 : a%7==0 //个位数是7 : a%10==7 //十位数是7 : a/10==7 Console.Write("请输入一个100以内的整数:"); int a = int.Parse(Console.ReadLine()); Console.WriteLine("是7的倍数吗?" + (a % 7 == 0)); Console.WriteLine("个位数是7吗?" + (a % 10 == 7)); Console.WriteLine("十位数是7吗?" + (a / 10 == 7)); Console.ReadLine(); }