黑马程序员---流程控制和函数



---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------


3.0程序流程控制

3.0.1判断结构

3.0.1.1if语句

1、A、B、C三种格式:

A.     if(条件表达式)

{

    执行语句;

}

B.     if(条件表达式)

{

    执行语句;

}

else

{

    执行语句;

}

C.     if(条件表达式)

{

    执行语句;

}

else if(条件表达式)

{

    执行语句;

}

……

else

{

    执行语句

}

2、if语句特点:

01、每一种格式都是单条语句

02、第二种格式与三元运算符的区别:三元运算符运算完要有值出现。好处是可以写在其他表达式中。

03、条件表达式无论写成什么样子,只看的是最终的结果是否是true或者是false。

04、当if语句的控制区间{ }内只有一条语句时,可以省略其{ }。当没有{ }时,if语句只控制离他最近的一条语句。

3.0.2选择结构

switch语句

1、   格式

switch(表达式)

{

case 取值1:

执行语句;

break;

case 取值2:

执行语句;

break;

……

default:

执行语句;

break;//最后的break可以省略,执行到此处时语句照样结束

2、   switch语句特点:

a)  switch语句选择的基本类型只有四种:byte、short、int、char。还有枚举类型。

b)  case之间与default没有顺序。先执行第一个case,没有匹配的case执行default(case和default的定义顺序是随意的,但是执行顺序是一定的:先第一个case后default)。

c)  结束switch语句的两种情况:遇到break,执行到switch语句结束的大括号处。

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

5、“case”是用来定义备选答案的;“取值”就是答案的具体内容;“break”跳出switch语句的;“default”当所有答案都不对的情况下执行的语句;

6、if语句和switch语句差不多,但是判断区间较多时,最好用if语句;判断结果是boolean型的最好用if语句。如果对具体数值并且数值不多的情况下进行判断,最好用switch语句(这时比较高效一点),其他情况都是一般使用if语句。

7、JDK7.0对switch语句进行了增强,可以判断字符串。JDK5.0中的switch语句可以判断枚举类型。

3.0.3循环结构

代表语句:while,do while,for

1、while语句格式

while(条件表达式)

{

    执行语句;

}

说明:

01、  ctrl+c:强制结束cmd命令行的运行

02、  运用此语句的步骤:

a)  定义初始化的表达式

b)  while(条件表达式)

c)  {

d)     执行语句(循环体)

e)    要有循环变量表达式

f)  } 

03、  先判断条件表达式,满足则进入循环体

2、do while语句格式:

do

{

    执行语句;

}while(条件表达式);//此处有分号哦

说明:

01、  do while特点是条件无论是否满足,循环体至少被执行一次。

02、  语句结束的标志:大括号“{}”和分号“;”。do while语句的结束标志是“;”分号。

03、  “while(条件表达式)”语句后面加上分号“;”,编译是通过的,{}部分是一个代码块是可以存在的,但是程序会一直做条件表达式的判断,而不会往下执行。

3、for语句格式:

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

 {

      执行语句;

}

注意: 

01、  for里面的三个表达式运行的顺序:初始化表达式只读一次;判断循环条件表达式,若为真就执行循环体;然后再执行循环后的操作表达式;接着继续判断循环条件。重复这个过程,直到条件不满足为止。

02、 while和for可以互换,区别在于for为了循环而定义的变量(作用域为for循环之内),在for循环结束后就在内存中释放。而while在循环时使用的变量在循环结束后还可以继续使用。(内存的优化:当变量只为循环存在,应当使用for语句,能够优化内存)

03、  最简单无限循环格式:while(true){},for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。(for循环的条件表达式不写的情况下默认为true)

04、  使用循环结构的情况是:当要对某些语句执行很多次的时候。

05、  一个程序例子说明表达式的运行顺序:

int x=1;

for(System.out.println(“a”);x<3;System.out.println(“b”))

{System.out.println(“c”);x++;}

程序运行结果是:acbcb

06、  “初始化表达式”是一个合格的表达式就可以,当表达式多的时候用逗号“,”隔开,此表达式也可以写for语句前面,但是必须留出它的位置;

07、  “循环条件表达式”是一个可以判断真假的表达式,不写的情况下默认为true;

08、  “循环后的操作表达式”是一个合格的表达式,当表达式多的时候用逗号“,”隔开,此表达式也可以写循环语句中,但是必须留出它的位置;

09、  累加思想:就是通过变量记录住每次变化的结果,通过循环的形式,进行累加操作。(字符串的不断增长,数据的不断加大或减小)

10、  计数器思想:通过一个变量记录数据的状态变化,也需要通过循环完成。(某一个内容中含有特定条件的个数)


11、  语句的嵌套:语句之中还有语句(循环嵌套语句,大圈套小圈)

12、  for嵌套循环的应用---打印图形

for(int x=0;x<5;x++)//外循环控制打印的行数

{

    //x的增加,使得y与x的差距减小

for(int y=x;y<4;y++)

//控制打印的列数,也就是一行中元素的个数

{

       System.out.print("*");

    }      System.out.println();//只有一个功能是换行

打印结果为:

****

***

**

*

规律总结:(全++的不是规律的规律)

尖朝上,可以改变条件,让条件随着外循环变化

   尖朝下,可以初始化值,让初始化随着外循环变化

13、  break(跳出)语句、continue(继续)语句

14、  break语句应用范围:选择结构和循环结构(跳出当前循环)

15、  continue语句:只应用于循环结构。

a)  这两个语句离开应用范围,存在是没有意义的

b)  这两个语句单独存在下面的都不可以有语句,因为执行不到

c)  continue语句是结束本次循环继续下次循环

d) 标号的出现,可以让这两个语句作用于指定的范围

  

标号说明:标号只能用于循环上,为循环起名字的一种方式,break和continue语句都可以使用。

4.0函数

4.0.1函数的定义

1、   函数的定义

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

02、  函数也称为方法

2、   函数的格式

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

{

  执行语句;

  return 返回值;

}

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

b)  参数类型:是形式参数的数据类型

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

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

e)  return:用于结束函数

f)  返回值:该值会返回给调用者

4.0.2函数的特点

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

2、便于对该功能进行复用

3、函数只有被调用才会被执行

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

5、对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写。当返回值类型是void时,调用它的语句不能有打印语句(因为都没有结果返回怎么打印)。

6、注意:

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

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

4.0.3函数的应用

1、两个明确

   01、明确要定义的功能最后的结果是什么?

   02、明确在定义该功能的过程中,是否需要未知内容参与运算

2、示例:

   01、需求:定义一个功能,可以实现两个整数的加法运算

   02、分析:

      a、该功能的运算结果是什么?两个数的和,也是一个整数(int)

      b、在实现该功能的过程中是否有未知内容参与运算?加数和被加数是不确定的。(两个参数int,int)

      c、代码:

        int getSum(int x,int y)

           {

           return x+y;

}

4.0.4函数的重载(overload)

1、重载的概念

   在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同(参数列表)即可重载。

2、重载的特定

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

3、重载的好处

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

4、重载使用的情况

   当定义的功能相同,但参与运算的未知内容不同,那么这时就定义一个函数名称以表示其功能,方便阅读,而通过参数列表的不同来区分多个同名函数

5、重载示例:

   01、返回两个整数的和

      int add(intx,int y){return x+y;}

   02、返回三个整数的和

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

   03、返回两个小数的和

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

6、函数之内也可以调用其他函数,以增强代码的复用性。



---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值