(3)函数和数组,控制语句

来源:互联网 发布:u盘 恢复数据.电脑 编辑:程序博客网 时间:2024/06/01 10:18

1…函数

 

l      什么是函数?

•        函数就是定义在类中的具有特定功能的一段独立小程序。

•        函数也称为方法。

l      函数的格式:

•        修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,)

       {

                     执行语句;

                     return返回值;

       }

       返回值类型:函数运行后的结果的数据类型。

       参数类型:是形式参数的数据类型。

       形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。

       实际参数:传递给形式参数的具体数值。

       return:用于结束函数。

       返回值:该值会返回给调用者。

 

注释:

函数在类中是独立存在的,他有自己独立的封装区间

 

修饰符的作用是对函数进行一下外加功能的定义

 

void:代表的是函数没有具体返回值的情况。函数里面是一定要写return语句的,当函数的返回值类型是void时,函数中的return语句可以省略不写。写上也不算错,,你不写的话系统会帮你加一个return,此时return后面是没有具体的值的,,,,return是用来结束函数用的

 

注意:

 

函数中只能调用函数,不可以在函数内部定义函数。多个函数之间的关系是平级的,没有谁包含谁

定义函数时,函数的结果应该返回给调用者,交由调用者处理。

 

java当中最小的功能单元就是函数,写代码的时候只要在处理或者定义功能的时候,都把他定义到一个独立的函数中去,而不要全部写到main方法里面’

 

 

函数例子:

 

public staticint getSum()

       {

              return3+4;

       }

 

2..函数的特点:

 

l      定义函数可以将功能代码进行封装

l      便于对该功能进行复用

l      函数只有被调用才会被执行

l      函数的出现提高了代码的复用性

l      对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写。

l      注意:

•        函数中只能调用函数,不可以在函数内部定义函数。

•        定义函数时,函数的结果应该返回给调用者,交由调用者处理。

 

3…函数重载:

 

重载的概念

在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可和返回值类型无关。保住名称一致

 

重载的特点:

与返回值类型无关,只看参数列表。

 

重载的好处:

方便于阅读,优化了程序设计。

 

重载示例:

//返回两个整数的和

  intadd(int x,int y){return x+y;}

//返回三个整数的和

  intadd(int x,int y,int z){return x+y+z;}

//返回两个小数的和

 double add(double x,double y){return x+y;}

 

什么时候用重载?

当定义的功能相同,但参与运算的未知内容不同。

那么,这时就定义一个函数名称以表示其功能,方便阅读,而通过参数列表的不同来区分多个同名函数。

 

 

4…流程控制语句

 

4.1.. 如果if控制的语句只有一条那么那个if里面的{ }可以不写

 

int x = 1;

if(x>1)   

       System.out.println("yes");

 

4.2…三元运算符和if else有区别:

 

                /*

              ifelse 结构 简写格式:变量 = (条件表达式)?表达式1:表达式2;

             

              三元运算符:

                     好处:可以简化if else代码。

                     弊端:因为是一个运算符,所以运算完必须要有一个结果。而if else全写格式他可以运算完不需要结果

              */

              inta = 9,b;

              b= (a>1)?100:200;

 

              if(a>1)

                     b= 100;

              else

                     b= 200;

                                                         

4.3…switch

if 相当于在做判断题,,那么Switch就是在做选择题

case '-':case是用来定义备选答案的而后面的取值就是那个答案的具体内容

 

switch语句特点:

                                            a,被选择的表达式的值只接收4种类型,switch语句选择的类型只有四种:byte,short,int , char。,,byte,short比较少见,因为我们平时操作的都是数字

 

b,case之间与default没有顺序比如可以把default:放在最前面,,default在前面时执行上需要注意的是,他先不读default,他要先从第一个具体答案开始执行也就是执行default后面的第一个case。只有后面的case都不对他才执行default,先执行第一个case,没有匹配的case执行default。case和default的他的执行顺序是固定的但是他们的定义位置是可以随意的.....default在前面时无论default是否满足条件他都会先读第一个case

 

                                                   c,switch语句结束有两种方式:1执行遇到break就结束了,执行到switch语句的}号结束。

 

                                                   d,如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束

 

例子:

 

                                                   charch = '+';

                                                        switch(ch)

                                                        {

                                                               case'-':    a      后面跟的是:号因为下面要写的是它所具备的执行内容

                                                                      System.out.println(a-b);

                                                               break;         

                                                               case'+':    b

                                                                      System.out.println(a+b);

                                                               break;

                                                               case'*':    c

                                                                      System.out.println(a*b);

                                                               break;

                                                               case'/':    d

                                                                      System.out.println(a/b);

                                                               break;       e

                                                               default:

                                                                      System.out.println("feifa");

                                                               break;   如果这个default:条件满足的话执行完("feifa")以后就直接到}号结尾处了这个语句一样能结束这里的break可以省略,写上也可以

 

                                                        }

 

If和switch的区别:

if除了可以判断具体数值还能判断区间而switch判断区间会很费劲,你要区间特别大的话,switch要把那些case全写出来,if不用,,还有对于运算结果是布尔型的if能判断,但是switch不行,

 

具体什么场景下,应用哪个语句呢?

如果你要对具体数值进行判断的话数值不多,就用switch完成,if也能完成,为啥用switch呢,,因为switch一加载,这些备选答案就全进内存了再之后直接判断就可以了,而if的话,if else要写好多条他要顺序执行,他执行的过程就比switch要多点,,

 

switch的应用较if来说有局限性:一般情况下对值不多的情况而且类型是byte short int char类型他可以用switch来判断,因为switch相对于if来讲要高效一点,其他情况下一般用if,当那个结果为布尔型或区间时用if

 

 

5…循环

 

5.1..while

while:先判断条件,只有条件满足才执行循环体。

              dowhile: 先执行循环体,在判断条件,条件满足,再继续执行循环体。

              简单一句话:do while:无论条件是否满足,循环体至少执行一次。

例子:

 

              inty=0;

              while(y<3)

              {

                     System.out.println("y="+y);

                     y++;

              }

 

 

5.2…for

 

for(初始化表达式;循环条件表达式;循环后的操作表达式)

              {

                     执行语句;

              }

 

for和while的区别:对于变量来说,如果这变量仅仅用于控制循环的次数作为循环增量存在的情况下用for合适,也就是变量只为循环的增量存在控制循环次数的话用for语句体现,内存相对于优化一点

 

例子;

for(int x = 0; x<3 ; x++)          

              {

                     System.out.println("x="+x);

 

              }

 

注释:

              1,变量有自己的作用域。对于for来讲:如果将用于控制循环的增量定义在for语句中。那么该变量只在for语句内有效。

              for语句执行完毕。该变量在内存中被释放。

 

              2,for和while可以进行互换,,,就这个增量变量在内存中的驻留时间那一块有点不一样,用哪一个看你是否需要定义循环增量。如果需要定义循环增量。用for更为合适。

 

             

              总结:

              什么时候使用循环结构?

              当要对某些语句执行很多次时,就使用循环结构。

 

 

5.3…. break和continue

 

break和continue这2个语句可以单独存在,他们都有自己独特的作用范围

 

break语句:应用范围:选择结构和循环结构。

continue语句:只能应用于循环结构。,,,continue是继续循环的意思

 

例子:

 

for(int x=1; x<=10; x++)

              {

                     System.out.println("x="+x);

                            //结束本次循环,进行下次循环

                            continue;

                    

              }

 

 

for(int x=0; x<3; x++)          

              {

                     for(inty=0; y<4; y++)

                     {

                            System.out.println("x="+x);

                            //break表示退出循环

                            break;

}

              }