C#编程第一季
2023-10-28 20:09:15 0 举报
AI智能生成
关于一些初级编程
作者其他创作
大纲/内容
基本概念
相关内容
Ctrl+F5相当于启动
相关解释
class是命名空间下控制的类
static void 是方法(各创一个类,用大括号分割)
namespace是定义命名空间(和项目空间保持一致)
console属于system
如表达 namespace _001_开始 (不能以数字开头,不会使用中文)
namespace name{ } (要有大括号)
idea,eclipse,vscode的快捷键是Ctrl+/
一些注意
每一句后面都要加分号“;”
有“ * ”表示没有保存(如Program*)一定要习惯性的保存
菜鸟课程可查询相关问题: ······ + 菜鸟教程
命名规则与规范
命名不能与关键字重名
每个关键字都有对应的作用,如果重名就不好识别其中的语法结构了
所有关键字都是小写
规范
字母
数字
不可以以数字开头
下划线
驼峰命名法
一目了然
int myAge;xiaomingAge;
直接看出想表达的是什么
首个单词的首字母小写,其余单词的首字母大写
Pascal命名规范
每个单词的第一个字母都大写(int EnemyUp)
如果使用到英文单词的缩写,全部使用大写(int PI HP MP)
操作与概念
小操作
WriteLine是输出语句
两种write的区别
write(不会换行,直接在同一行)
writeline(会换行)
两种F5的区别
F5 开始调试
Ctrl+F5 开始执行(不调试)
两种删除的区别
箭头删除表示删前面的
Delete是删后面的
insert 实现插入模式和编辑模式的转换
输入法中的月亮形状图案可以实现全角模式和半角模式的转换(全角模式的字母更大一点)
概念
概念一
整数 25
浮点数 3.0
字符 ‘ a ’
字符串 “ hello ”
概念二
创建了一个数据的容量,容器的名字是age(变量名)
不能重名
声明了一个变量,变量的名字是age(变量名)
int 是整数类型
容器的类型是int(变量类型),赋值
double 是小数类型
char 是字符
概念三
变量名不能以数字开头
变量名是用英文字母,数字,下划线组成
命名(不能用中文命名,要用英文,但能用拼音)
int count(计数)
double ave(平均数)
double height(身高)
int total(整数总和)
double temperature(温度)
char sex(性别)
命名不能重复,若有相似的可以在后面加上“123”
一些小知识
如果想知道 a 和 b 内存放的多少,可以使用输出语句“Console.WriteLine(” ");
( " a " ) 输出的是a的字符,即原封不动的出来
( a ) 输出a里面的值(也就是结果)
当一个数字和一个字符串相加时( + ),其实是完成一个两者的组拼,无法相加
例如:int a=3,b=8
Console.WriteLine( a+ " + " +b); 3+8
Console.WriteLine( " a+b "+a+b) a+b38
Console.WriteLine( " a+b "+ ( a+b ) ); a+b11
有括号时,先运算括号内的内容得出结果
类型范围
整数范围 int 有范围(上亿),容器较大;字符范围 char (几百个),容器较小
byte,short,char<int<long<float<double, byte,short参与运算会自动转换成int,强转会降低精度
强制类型转换(因为容器小了)
int a=97; char b=a; 这样写不行
将上列写成: int a=97; char b=(char)a;
关于 “ @ ”
Console.WriteLine(“c:\\a\\b\\c”);
Console.WriteLine(@"c:\a\b\c");
以上两者的运行结果一样,因为有@,所以转义字符(即斜杠)不生效了
字符串格式化输出
int a=23,b=45; Console.WriteLine(a+"+"+b+"="+(a+b) );
int a=23,b=45; Console.WriteLine("a+b=c",a,b,a+b );
Console.WriteLine("{0}+{1}={2}",a,b,a+b); //0,1,2
Console.WriteLine(格式字符串(含替代标记),替代值0,替代值1,替代值2,······);
注意
不能取一个不存在的值
替代值可能用不上
直接写大写的字母就可以输入进去,如输入WL即可得到WriteLine
错误调试
通过Exception查找错误
运行时异常
编译时候的异常 通过IDE可以检查出来
一些数学习惯导致的异常
a+1
double a=(3+8)/2
double a=(3+8)/2.0;
double a=(3+8)*1.0/2;
if(18<age<30)
程序里比较运算符一次只能比较两个,要分开比较
if(age=4)
判断相等时要使用两个等号,即==
可以改为if(4=age)
斜杠的特殊作用
\n (表示转义) 运行后可换行(hello \nworld)
\t(表示占四格)(he \tllo表示he____llo)
"\" " 表示引号(在两个引号中直接表示引号不行,一定要加斜杠)
“\\”要用两个斜杠表示斜杠
“\\\" ” 表示 \"
' \' '表示单引号
基本操作
快捷键
复制粘贴 Ctrl+c,Ctrl+v
全选 Ctrl+a
保存代码 Ctrl+s
取消操作 Ctrl+z
剪切 Ctrl+x
复制 Ctrl+c
粘贴 Ctrl+v
复制一行代码 Ctrl+d
翻页
上一页 PgUp
下一页 PgDn
选取
shift可以多选多行代码,光标放开头,点shift,光标点结尾
Ctrl可以选取单独的文件
注释
单行注释:单独的行或一个代码后面添加,使用“//”
多行注释
使用 /* */ ( 在想要注释的多行部分添加)
多行注释快捷键
Ctrl+Shift+/
Ctrl+k+c
取消注释快捷键:Ctrl+k+u
关于数据的读取
Console.WriteLine(“ ”);
表示控制台显示,写在控制台
如果想知道 a 和 b 内存放的为多少,可以使用这个输出语句
表示的是最后启动后显示的结果
Console.ReadLine( );
表示从控制台读取一组数据,返回的是字符串
读取数据,输入数据 string str=Console.ReadLine( ); Console.WriteLIne( str +" - ");
只有读取到用户输入后,才可以输入进去
输入,再用回车键告诉它
子主题
赋值
往容器里面放东西
赋值例如:total=4
“ = ”的左边一般是一个容器,它不能运算
a=b+c 可以
x+y=z 不可以
a=a+1 可以
23=a 不可以(是把右边的赋值给左边)
int a; a=1; 相当于 int a=1;
旧的数据会被清空,变成新的数据,如:int a; a=1; a=2; 的输出结果是 a=2,其中的 a=1 被清空了
类型一样,所以可以多次赋值,如: int a=3,b=8;
注意
变量要先声明( 如 int )——再赋值——最后使用
变量要先初始化再使用(读取)
第一次赋值称为初始化
如:int c; c=10; c=11; (变色部分即为初始化)
如格式:int c;(即声明) c=10;(要为 c 赋值) Console.WriteLine( c );
字符类型(声明)
char sex=‘ f ’; sex=‘ m ’;
female女性,male男性
只能存放一个类型
char a=' c b '; 不可以
char a=‘ c ’; 可以
字符串的声明
string str=“ ”(没有括号)
要是想在字符串内表示引号,则再加个引号
赋值要求
类型一致(例如字符串不能赋值整数)
右边的值所需要的容器大小 <= 左边的容器
关于用户输入
读取一行数据,把这行数据转换成一个整数,并且赋值给a
int a=Convert.ToInt32(Console,ReadLine( ) );有几个需要的变量就分别设几个
在计算机中,算出两个数的平均数,即: (a+b)/2,其中a,b要用上式表示,使字符串转变为数字
int a=Convert.ToInt32(Console,ReadLine( ) );
int b=Convert.ToInt32(Console,ReadLine( ) );
int c=(a+b)/2
Console.WriteLine(c);
Console.ToChar(Console.ReadLine( ));可以把字符转化成字符类型
变量交换
借助第三个变量
int a=5,b=10;
int temp=a;
a=b; b=temp;
b的数据转移到a里面
a的数据已经放进temp里面了
Console.WriteLine( a );
Console.WriteLine( b );
不借助第三个变量
将a,b相加,把两者的和保存起来,再进行交换
a=a+b; b=a-b; a=a-b;
数学运算符
+,-,*,/
int a=23+23;
int b=2-10;
int c=4*23;
int d=45/10;
因为两个数都是整数,所以最后的结果也是整数,小数部分自动抹掉,存在小数即可,如下
换成小数字符 double f=45/10.0; 结果为小数
再分别使用Console.WriteLine
取模(求余)% (注意用于整数,用于小数的时候,容易出现不精确的问题 ,比如:4.3%1)
int e=45%10;
因为是用于整数,所以一定要用int
赋值运算符
问题:设计一个算法,可以把任意一个两位数分离它的个位和十位上面的数字。比如:78,它的个位数是8,十位数是7
int num=39;(num就是数字) 将它与10求余,就可以得到它的个位数 int ge=num %10;ge就是个位的个 int shi=num/10; Console.WriteLine(" 个位数是{0},十位数是{1}",ge,shi) ;
运算
运算符
= c=a+b将把a+b的值赋给c
+= c+=相当于c=c+a
-= c-=a相当于c=c-a
*= c*=a相当于c=c*a
/= c/=a相当于c=c/a
int a=0; a+=10;a=a+10; Console.WriteLine(a); a-=5; 5 a*=3; 15 a/=6; 2 a%=2; 0
自增自减运算符
int a=5; a++; 让它自身增加1 ,调动几次增加几次 a++; Console.WriteLine(a); a的值为7
int a=5;a--; 让它自身减一,如上 Console.WriteLine(a); a的值为6
自增自减运算符可以放变量的后面,也可以放前面
区别
a++ 先赋值再自增 a在前面,先赋值 如int a=5;int b=a++; a=5;b=6;
++a 先自增在赋值 加号在前面说明加号更重要,所以先自增 如inta=5; intb=++a; a=6;b=6
单独放时作用相同,都是自身增加一
关系运算符和布尔类型
关系运算符
运算结果就是布尔类型,即true或false
满足条件=真=1
不满足条件=假=0
就是比较运算符,用来比较两个数字的大小
符号与条件
== 判断左边是否等于右边
> 判断左边是否大于右边
< 判断左边是否小于右边
>= 判断左边是否大于或等于右边
<= 判断左边是否小于或等于右边
!= 这个表示“ 不等于 ”
例如bool a = 45<67;再使用Console.WriteLine( a );来运行结果,结果为true
布尔类型 bool
只有两种结果,分别是true和false(即是或不是)
true代表1,false代表0
逻辑运算符(用来判断多个运算符)
假设变量a为布尔值true,变量b为布尔值false,不为零表示true
&& 称为逻辑与运算符,如果两个操作数都不为零,则条件为真 (a&&b)为假
|| 称为逻辑或运算符,如果两个操作中有任意一个不为零,则条件为真 (a||b)为真
! 称为逻辑非运算符,用来逆转操作数的逻辑状态,如果条件为真则逻辑非运算符将使其为假 !(a&&b)为真
a,b必须是一个布尔值,或者布尔表达式
例如 bool a(3<4)&&(9<6); 运算结果为false
输入一个人的年龄,判断这个是否是青年,青年标准是18-60岁
int age=Convert.ToInt32(Console.ReadLine( ));
bool isYoung=age >=18 && age<=60;
Console.WriteLine( isYoung );
运算符的优先级
比如加减乘除,加法和乘法在一块时,先运算乘法
先左到右,先乘除,后加减
括号是最高的优先级,括号内优先运算,括号和++--是同一级的
if条件语句(if if else和if else if)
if (条件){ } else{ } 没有分号,可以不加else
int age=Convert.ToInt32(Console.ReadLine( ));
if(age<=16) { Console.WriteLine("可以进入”);
else {Console.WriteLine("年龄太大,不可以进入“);
Console.WriteLine(“程序结束”);
例题
判断奇数偶数 if(number@2==1);
判断(18岁至30岁)是否能获得奖品
方法一
int age=Convert.ToInt(Console.ReadLine( ));
if(age>=18&&age<=30&&age%2==1)
方法二
int age=Convert.ToInt(Console.ReadLine( ));
if(age>=18&&age<=30){Console.WriteLine(“可以参加活动”);
if(age%2==1){Console.WriteLine(“获得奖品”);}
else{Console.WriteLine(“没有获得奖品”);}
}else{Console.WriteLine(“不可以参加活动”);}
if else if
if(score>=90){Console.WriteLine(“A”);}
else if(score>=70){Console.WriteLine(“B”);}
else if(score>=60){Console.WriteLine(“C”);}
else{Console.WriteLine(“0”);}
如果只有一行语句,if后的大括号可以省略,即只有int x; x=···;if()Console.WriteLine( ));else Console.WriteLine( );
switch分支语句
Switch可以做一个条件判断,来判断相等
形式: switch(number){ }
例题
switch(number)number表示要判断的变量{ case 1:ConsoleWriteLine(“矿泉水”);break;case 2:ConsoleWriteLine(“红茶”);break; default:ConsoleWriteLine(“脉动”);break;}
switch(weekNum){case 1: case 2: case 3: ConsoleWriteLine("C++"); break; case 4: case 5: case 6: case 7:ConsoleWriteLine(“Scratch"); break; } 可以连在一起写
注意
每一个case后面都要加上break,break代表中断default也是,default表示默认的,把它放在最后写,default可以省略不写
switch只能判断相等,且只能判断一个变量
与 if 语句的区别
switch只能判断是否相等,比如以week为例,只能找到对应的星期几从而判断,比较局限,而 if 语句中可以任意写,不受限制
if 适合做范围判断,switch 适合在多条件下判断是否相等
关于最大值最小值的比较 int max=a,min=a; if(max<b){ max=b;} if(max<c){ max=c;} if(min>b){min=b} if(min>c){min=c} ConsoleWriteLine("最大值是{0},最小值是{1}.",max,min};
while循环语句
结构 while(条件表达式){ //循环体 }
注意
当满足条件的时候会一直执行,不满足条件的时候,跳出循环,执行后面的代码
条件表达式也是布尔表达式,需要返回一个布尔值
while ( true ){ }表示一直都true
while (true) { Console.WriteLine("while循环体");} Console.WriteLine("while后");
上式为一个死循环
while循环一般使用 i 来控制与判断循环执行的次数,并且需要一个增量,即 i++,自增可能在输出的前面,也可能在后面
分为 i 的初始值,判断条件,自增自减
当初始值为0时,则将增量表达式放在输出的前面
int i=0; while ( i<10 ) { i++; Console.WriteLine(i);}
一般都把 i 的值设为 1 或 0
输出1到10
int i= 1;
错误表示(是一个死循环)while (true){ Console.WriteLine(i}; i++;在 i 自增之前输出,i 的初始值是1,如果先自增,则第一个输出的值为2}
正确表示 while ( i<11) i<11是跳出循环的条件 {Console.WriteLine(i); i++;} Console.WriteLine("while后"+i ); Console.WriteLine("while后");
打怪,血量大于零时就一直攻击
int HP=100;
while ( HP>0) { HP -=3; Console.WriteLine("HP"+HP);}
sum可以存放和 求 1+2+3+·······+n的和
当 n 的值确定时 int i=1; int sum=0; while ( i<101) { sum=sum + i sum +=i; i++; } Console.WriteLine(sum);
当 n 的值不确定时 只需要控制while循环的执行次数,n 为多少,则执行多少次,使其小于 n+1 即可
int n=Convert.ToInt32(Console,ReadLine( ) );
int i=1; int sum=0;while ( i<n+1){ sum+=i;i++;}即当 i<n+1时就不执行了
Console.WriteLine(sum);
0 条评论
下一页