Java学习笔记(三)-- 流程控制

        几乎所有的编程语言都会提供基本的流程控制语句,像分支结构和循环结构。分支结构用于实现根据条件来选择性地执行某段代码,循环结构用于实现根据循环条件重复的执行某段代码。Java提供if和switch两种分支语句,还有for,while,do… while三种循环结构。其中for循环包含了一般的for循环和JDK5加入的foreach循环。

一.          顺序结构

        循环结构是java最基本的结构,像C语言,C++等都符合顺序结构的执行方式,当然C语言中的goto语句,破坏了顺序结构的执行方式,允许开发者任意跳转,所以有言好男人不用goto语句。Java里同时将goto语句列为保留字,也许在未来可能去实现它,至少目前为止还没有goto语句的实现。顺序结构就是程序自上而下逐行地执行,中间没有任何的判断和跳转。

二.          分支结构

        Java中提供两种常见的分值控制结构,if语句和switch语句,其中if语句使用布尔表达式或者布尔值作为判断条件进行控制;switch语句则对多个整型值进行匹配实现控制。

1.     if条件语句

if语句在书上都是被认为是三种形式,事实上我觉得第三种形式同时包含了前两种情况,if语句的形式为:

if (logic expression)

{

   statement…

}

else if (logic expression)

{

   ststement…

}

else

{

   statement…

}

         其中else if和else都是可以根据实际情况增加删减的。在上面if的括号里放的是逻辑表达式,结果为true则执行,结果为false则不执行。if下的执行语句如果只有一条,大括号是可以省略的,但是从程序逻辑性和可读性的角度,最好一直保留着。如果三行代码一块钱,这样一块钱就到手了。

        if语句比较容易理解,有个地方需要注意,注意条件的包含性

publicclass ScoreTest

{

    public static void main(String [] args)

    {

            int score = 93;

            if (score > 60)

            {

                     System.out.println("及格");

            }

            else if (score > 70)

            {

                     System.out.println("中等");

            }

            else if (score > 80)

            {

                     System.out.println("良好");

            }

            else if (score > 90)

            {

                     System.out.println("优秀");

            }

            else

            {

                     System.out.println("不及格");

            }

    }

}

         表面看起来上面的程序没有问题,应该输出为优秀,但是输出为及格。因为第一个表达式的范围涵盖了后面的所有表达式,if的嵌套规则应该是从最小到最大,这样才能保证逻辑性不容易出错。

2.     switch语句

          switch语句由一个控制语句和多个case标签语句构成,switch语句后的表达式只能是byte,short,char,int,枚举类型和java.lang.String类型(JDK新加入),不能是boolean类型。switch语句的的格式如下:

switch(expression)

{

case condition1:

{

          statement...

}

case condition2:

{

          statement...

}

....

default :

{

          statement...

}

 

}

     使用switch语句时,有两个值得注意的地方:第一个地方是switch后面的表达式的数据类型只能是byte,short,int四个整型,枚举类型,和String字符串。第二个地方是case语句块需要有break语句。

三.          循环结构

         循环语句可以在满足一个循环条件的情况下,反复执行一段代码,这段被重复的代码被称为循环体。当反复执行这个循环体时,需要在合适的时候把循环条件改为假,从而循环结束。循环语句通常包含四个部分:

1.     初始化语句(init)

2.     循环条件(expression)

3.     循环体(body)

4.     迭代语句(iteration)

3.1 while 循环语句

While循环语句的语法格式如下:

[init]                                                    int i = 0, sum = 0;

while(expression)                           while(i<100)

{                                                         {

         body…                                              sum += i;

         [iteration]                                           i++;

}                                                           }

While循环每次对expression表达式做判断,结果为true则执行循环体。反之,结果为false跳出循环。

3.2 do while循环语句

         do while循环和while循环的功能基本相似,区别在于do while循环先执行循环在做判断,而while循环先做判断在执行循环体。do while循环的语法格式如下:

[init]                                                                           int i = 0, sum = 0;

do                                                                              do

{                                                                                 {

         body…                                                                    sum += i;

         [iteration]                                                                 i++;

}while(expression);                                              }while(i<100);

        从上面可以看出while和do while的实际区别在于do while语句的循环体至少会被执行一次,而while语句则不一定会被执行。另外就是do while语句之后的while后面有分号,而while语句的后面有分号就成了空循环。空循环一般用于延时的程序。

3.3 for 循环

       for循环是更加简洁的循环语句,一般可以用来代替while循环和do while循环,其基本格式如下:

for ([init] ; [expression] ; iteration))                   for(int i=0 , sum=0 ; i<100 ;i++)

{                                                                            {

         statement..                                                          sum += i;

}                                                                           }

        程序在执行for循环时,先执行循环的的初始化语句,初始化语句实在循环开始前执行一次。每次循环之前判断expression的值,如果循环条件返回true,则执行循环体部分,循环体执行结束之后执行循环迭代语句。

        值得注意的是,for循环的循环迭代语句没有和循环体放在一起,因此在执行循环体时遇到continue结束本次循环,循环迭代语句也会被执行。

for循环同时还包括foreach循环,而这个循环主要用来遍历数组或者集合,放在后面学习。

四.          控制语句

4.1  break语句

         在某些时候,我们需要在某种条件出现时终止循环,而不是等到循环条件为false时再退出循环,此时可以借助break语句完成这个功能。break语句用来结束一个循环,跳出循环体。break语句不仅可以跳出循环,同时也可以跳出指定的循环体,如下所示。

 

public classBreakTest

{

         public static void main(String[] args)

         {

                 outer:

                 for (int i= 0 ; i < 10  ;i++ )

                 {

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

                          for (int j=0 ; j <5; j++)

                          {

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

                                   if (j == 2)

                                   {

                                            breakouter;

                                   }

                          }

                 }

         }

}

 

4.2  continue语句

 continue语句与break语句非常类似,他是跳出当前循环继续执行下一次循环。continue也可以进行跳出标签的功能,读者可以自己尝试一下只需要将上面的程序中的break换成continue即可。

 

4.3  return 语句

 return语句是指跳出当前的方法,不管return语句处在多少层循环嵌套之中,都能跳出方法。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值