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