码迷,mamicode.com
首页 > 编程语言 > 详细

黑马程序员-------Java基础学习(一)Java中基本的几种程序流程控制

时间:2015-05-07 12:23:44      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:

 ------- android培训、java培训、期待与您交流! ----------

一、if/else构成的判断结构

if(条件表达式)

{

    表达式1;

}

else

{

     表达式2;

}

 

 

其含义为,如果if后边的条件表达式为true,则执行表达式1,否则执行表达式2;

相当于之前学到的三元运算符组成的判断结构:

(条件表达式)?表达式1:表达式2

其含义为:当括号内的条件表达式逻辑值为true时,执行表达式1,本次运算结束;

          当括号内的条件表达式逻辑值为false时,执行表达式2,本次运算结束。

 

注:三元运算符的好处是可以简化if/else代码,但也存在弊端,它仅仅是一个运算符,所以运算后必须要有一个具体的结果。

 

if(条件表达式1)

{

    表达式1;

}

else if(条件表达式2)

{

     表达式2;

}

else if(条件表达式3)

{

   表达式3;

}

……

else

{

   表达式N

}

 

这种结构,只要运算到某一条件表达式时,该条件表达式满足,则结束整体的运算。

二、选择结构

switch选择结构

 Switch(表达式)//表达式的数据类型只能为byte、short、int或char类型

{

 /* default:

   执行语句;

   break;

当default在选择结果的最前端时,只有一下case跟的取值结果全部匹配,才会执行default后边的执行语句,此时一定要书写break,如果此处没有break,则继续向下执行,但并不与case跟的取值进行匹配运算,直接执行后面的每条执行语句,直至遇到break或 } 才会停止。

*/

  case 取值1:

     执行语句1;

     break;

case 取值2:

     执行语句2;

     break;

 ……

default:

   执行语句;//只有当以上答案全不对时,执行default后边跟的默认执行语句

   break;//此时break可有可无

}

 

注:swtich不能判断结果为布尔型的条件。

当对具体的数据(byte、short、int或char类型)进行判断,且数值不多时,可以用swtich结构;

若当值为区间或者布尔型时,可以用if结构,if结构的适用范围更广。

 

三、循环结构

(一)while 和do/while 的循环结构

1) 

while(条件表达式)

 {

        循环体(执行语句);//如果循环体中没有控制条件则一直执行循环体中的内容。

}

 

2) 

do

 {

      循环体;

 }

   while(条件表达式)//无论条件是否满足,至少执行一次do后边的循环体。

 

区别:

A:while 先判断条件,只有当条件满足时,才会执行循环体的内容。

B: do/while 先执行一边循环体的内容,若条件满足,则再继续执行循环。

 

(二) for循环

 

 

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

         {

                   执行语句;

         }

图为for循环的过程示意图

 技术分享技术分享

for循环结构和while循环结构的区别:

1)  若该变量仅限于作为循环内的循环增量存在,用于控制循环次数,则用for循环结构,语句简单,可以优化内存。

2)  for循环结构中所定义的变量,作用于只限于该循环结构内,循环执行完毕后,该变量在内存中被自动释放,而while循环结构中的变量通常是在循环结构外定义的,循环结束后仍然存在

延伸:无限循环的最简单表达方式

 

for(;;)

{

 

}

 

while(true)

{

 

}

注意:循环中一定要明确哪些语句需要参与循环,哪些不需要

循环中的累加思想:通过变量记录住循环操作后的结果

1)  记录每次变化的结果

2)  通过循环进行累加的动作

 

(三)拓展:在JDK1.5版本中增加了高级for循环的新特性

格式:

for(变量类型 变量 : 要被遍历的集合或数组)

        {

                   循环体;

         }

 

高级for循环的底层原理是Iterator迭代器,这种方式对集合进行遍历,只能够获取元素而不能对元素所在集合进行操作。

与普通for循环的区别:高级for循环有一个局限性,就是一定要有被遍历的目标,例如:

如果循环进行打印某条语句,可以通过普通for循环控制次数,但却不能使用高级for循环进行操作

forint x=0;x<100;x++)

{

         System.out.println("hello world");

}

这种情况就不能够使用高级for循环,因为for循环只是在控制循环次数,没有要被遍历的目标集合或数组;

 

建议在遍历数组时还是使用传统的for循环, 因为传统的for循环在遍历时还可以根据获取数组角标对数组进行操作。

 

四、在循环结构中,我们通常会用到break(跳出)和continue(继续)的操作,下面来总结一下二者的使用方法:

break语句的作用

(1) 只能在循环体内和switch语句体内使用break语句。
(2) 当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。
(3) 当break出现在循环体中,但并不在switch语句体内时,则在执行break后,跳出本层循环体。

(4) 在循环结构中,应用break语句使流程跳出本层循环体,从而提前结束本层循环。

continue语句作用

(1) continue语句的一般形式为:continue;

(2) 其作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判定。
(3) 注意:执行continue语句并没有使整个循环终止。在while和do-while循环中,continue语句使得流程直接跳到循环控制条件的测试部分 ,然后决定循环是否继续进行。

(4) 在for 循环中,遇到continue后,跳过循环体中余下的语句,而去对for语句中的“循环后的操作表达式”求值,然后进行“循环条件表达式”的条件测试,最后根据“循环条件表达式”的值来决定for循环是否执行。在循环体内,不论continue是作为何种语句中的语句成分,都将按上述功能执行,这点与break有所不同。

 

黑马程序员-------Java基础学习(一)Java中基本的几种程序流程控制

标签:

原文地址:http://www.cnblogs.com/misskings/p/4484244.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!