方法中想访问调用者变量,通过传参数, 当调用者想访问我们方法中变量时可以通过返回值返回。并且在调用者中要声明一个变量接受返回值。
if结构if(条件)//这个条件最后的值为true或false.语句1;执行过程:首先判断条件的结果,如果条件为true,则执行语句1,如果条件为false,则跳过语句1.执行后面的语句.注意:1)if后面括号中的条件,要能计算成一个bool类型的值. 2)当if值为false时,直接跳至语句1的下一句.
短路问题:当bool ||运行时,当第一个成立时,第二个已经不用运算,整个表达式成立.
关系表达式++自加一--自减一前加++a,优先级最高,先算自加一,再算运算符,后加a++,取a原值,优先级最低,先算运算符,再自加一。前减,后减类似于前加和后加。+=:a=a+3<==>a+=3-=:a=a-3<==>a-=3*=:a=a*3<==>a*=3/=:a=a/3<==>a/=3%=:a=a%3=>a%=3
convert.toint32convert.tostring有可能出错的代码:try-catchtry{用户输入有可能出错的代码}catch{出错后的处理}//捕获程序运行时出现的错误,如果用户输入错误代码时,程序立马到catch语句。
类型转换1.隐形转换=自动转换,程序自动转换。int=>double/decimal.2.强制转换:程序员转换,因为有可能出错,数据类型一定要相兼容,有可能丢失精度。double=>int语句:int a = (int) 3.14;//定义一个int变量a,把double类的3.14强制转换为int类型,然后赋值给a。string=>int语句:string a="32";int b=convert.toint32(a);把a的值取出来,强制转换为int类型。类似,todecimal,todouble等都有。所以的数据类型都可以转为string类型,tostring语句。
逐语句调试在有方法的时候是可以进入方法调试的。逐过程调试 在有方法的时候是不进去方法的。console.readline()其中 console是类名,readline是方法名,方法的调用,如果是静态方法,则使用类名.方法名 调用在的类中,调用本类的方法,可以只写方法名,省略类名,return可以立即 退出方法。所以在main方法,return可以立即推出程序。reflector程序变量的作用域,在那个方法中定义的变量,只能在那个方法中用,main 方法调用了 其他方法,main叫调用者,当被调用者想得到调用者方法中的变量时,则可以让调用记者通过参数的形式给被调用者。int.parse(string),把字符串转换成数字。
1.方法中金莲更不要设置提醒用户2.当形参是数组的时候,我们传数组名。
1.方法(函数)
冒泡排序法:让数组中的元素两两比较,第i个与第i+1个比较,经过n遍(i-1)两两比较,数组按照我们预期的规律排序.要从大到小排序,我们用<小于号。10,20,30第一遍20,30,10第二遍30,20,10三个元素比较2次 10,20,30,40,50,60,70第一遍:20,30,40,50,60,70,10 比较6次第二遍:30‘40’50‘60’70‘20’10比较5次第三编:40,50,60,70,30,20,10 比较4次第t遍的比较次数为 n-tn个数需要比较 n-1次 需要比较多少次
for循环中定义的变量,只能用于for循环内。数组内元素首尾交换,n个元素交换,交换次数:数组长度整除2,在一个循环中第i个元素与第
数组:可以帮我们一次声明多个同类型变量。这些变量在内存中是连续存储的语法:数据类型[] 数组名= new 数据类型 [数组长度] int[] score = new int[5];int[] numbs={2,8,1,}这句话就声明了一个长度为5的数组,叫score,通俗点说,就是声明了一个数组,里面包含5个int类型的变量。数组名叫score,里面5个int类型的变量叫数租的元素。如何访问数组:通过下标(索引)来访问数组,数组名[编号]比如我们要向第0个元素赋一个3:score[0]=3;int类型数组一旦申明,里面的每一个元素被初始化成0通过数组名.length可以获得数组的长度console.clear()可以清屏
结构体。为什么要用结构体。:1.当我们要存储n个人的信息的时候,就要声明n组变量,麻烦;2.存数一个人的信息的这几个变量间没有关系,容易记乱。语法:访问修饰符 struct 结构名{ 定义结构成员} 结构中可以包含变量和方法,结构中定义变量,必须加public定义好一个结构后就可以直接声明相应的变量了。声明好变量后,通过变量名.成员名来访问结构的成员,
常量定义 语法:const 类型 常量名 = 常量值; const double pi = 3.14;在定义时 赋值。在其他地方不允许赋值。枚举让我们定义一中类型并且在定义这种类型的时候要制定这个类型的所有可能的值语法:enum 自己起的类型名称{值1,值2,值3……,值n}; enum 性别 {男,女}; 枚举的定义,一般和类定义在 同一个级别上,在同一个命名空间下所有的类都可以使用这个 枚举了。(方法中也可以,类中也可以)枚举作用:1,限定用户不能随意赋值,只能子啊定义枚举时列举的值中选择,2,只需要死记每一个选择值是什么,只需要选择相应的值。定义枚举时,值不能是int类型枚举类型的变量都能强制转换成int类型 ,枚举的值在定义时已经分类了默认编号,从0开始。,如果想要强制制定某个值的编号,直接 enum gender{boy=1,girl};那girl的编号为2.用户输入的时候,需要一个公式,把字符串转换为枚举类型(自己定义的枚举)(enum.parse(自己定义的枚举),"待转换的字符串");用户输入转换枚举的时候,要记得 try catch任何类型都能 变量值.tostring()转换成 字符串
continue:用于循环中,程序一旦执行到continue语句,立即结束本次循环,不再执行循环体中continue下面的语句,直接进行下一次循环(对于do while或者while循环,是直接进行下一次循环条件的判断,如果条件成立,再次进入循环,对于for循环,先执行表达式3,再判断条件是否成立)三元运算符,可以替换if -else结构。三个表达式表达式1?表达式2:表达式3执行过程:首先计算表达式1(bool),如果表达式1的值为true,那么表达式2的值作为整个表达式的值,如果表达式1为false,那么表达式3的值作为整个表达式的值。表达式2和表达式3的雷西你给一定要相同或相容。
for循环:在循环之前就知道循环次数语法:for(表达式1;表达式2;表达式3){ 循环体;}一般情况下表示式1,用来定义循环变量并赋初值;表达式2:循环条件,表达式3:用于改变循环变量的值(i++)执行过程:1.执行表达式1,转向第二步;2。计算表达式2(bool),如果表达式2值为true,转向第三步。如果表达式2为false,转向第五步3.执行循环体,转向第四步4.执行表达式3,转向第二步。5,循环结束水仙花熟,三位数,A*A*A+B*B*B+C*C*C=ABCfor循环特例:三个表达式都可以省略,但是分号不能省略。一旦表达式2省略,就是死循环。表达式1(int i;)一旦写在for括号里,i就只能在循环体内使用
try-catch:try中的代码是有可能出错的,一旦出错就进入catch int a =3;Convert.ToInt32(a)convert.toint32并不是转换a的类型,而是把3转换成了数值型,
do-while先执行再判断。语法:do{循环体;} while(条件); while条件后面记得有分号执行过程:1.执行循环体。执行完循环体,转向2;2.判断条件是否成立,如果为true,如果条件为false,转向3;3.跳出循环。假如循环条件一开始就不成立,对于while循环一次都不会执行,对于do-while循环,循环体会执行一次。所以do-while循环体一般至少会被执行一次。while为先判断后执行;do-while为先执行后判断。
while循环:语法:while(循环条件) //循环条件{ 循环体(要循环的n条程序);}执行过程: 特点,先判断再执行1.先判断循环条件,如果条件为ture。则转向2.如果条件为false则转向32.执行循环体,循环体执行完成转向13.跳出循环,循环结束。注意:在循环体中一定要有一句话,改变循环条件中的某个变量的值,让循环条件经过n次循环后变成false、
switch-case一般只能用于等值比较。if-else if:可以处理范围switch 多个case结果一样的时候可以些在一块儿,共用一组语句。