黑马程序员--JAVA基础之流程控制语句

来源:互联网 发布:知柏地黄丸吃多少粒 编辑:程序博客网 时间:2024/05/22 01:48
 


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

 什么是流程控制?流程就是做一件事情的顺序,或者说是次序,在程序设计中,流程就是要完成一个功能,而流程控制则是值如何在程序设计中控制完成某种功能的次序。

语句是程序的控制成分,它具有特定的语法规则严格的表达方法,用来控制程序的运行,因此语句也是一些具有结构化的控制结构。这些控制结构可以归为三类:顺序结构,选择结构和循环结构,实现这些控制结构的语句可分为五类:表达式语句,复合语句,分支语句,循环语句和跳转语句。

if控制语句:

if语句是用来判断是给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一,Java提供了3种形式的if语句:if语句,if-else语句和if-else-if语句。

1,if语句:

一个if控制语句由关键字if,布尔表达式及位于其后的语句组成,基本形式:

if(布尔表达式) 

{

方法体//程序语句

}

若布尔表达式的返回结果是true,则执行语句1,并继续处理其后的下一天语句(语句2),若为false,则跳过语句1并继续处理紧跟着整个if的语句2。 

 class Demo{
   public static void main(String[] args)     {
         int a=5;
         if(a>3)
         {
        System.out.println("变量大于3");
            }
System.out.println("执行if语句后面的程序');
     }

}

 完全形式的if条件语句

在执行if条件语句时希望表达式的结果为false,这时就可以使用完全形式的if条件语句,完全形式的if条件语句语法格式为:

if(表达式){   方法体    }else{     方法体    }
 class Demo{   public static void main(String[] args)     {         int a=5;          int b=3;         if(a>b)         {      System.out.println("最大值是"+a);            }         elsse{    System.out.println("最大值是"+b);                    }System.out.println("执行if语句后面的程序');     }}

其中else语句中包括的方法体就是代表当表达式为false是执行的代码。
 


多条件表达式的if条件语句:

     if(表达式){       方法体       }else if(表达式){            方法体              }else{                 方法体                    }class Demo{   public static void main(String[] args)     {         int a=5;        int b = 3         if(a>b)         {    System.out.println("最大的是"+a);          }else  if(a==b){         System.out.println("最大值是"+b);                   }else{    System.out.println("相等吗');                        }System.out.println("执行if语句后面的程序');           }}结果为:最大值是5执行if语句后面的程序结果是:最大的是5;执行if语句后面的程序

 

if条件语句还可以嵌套使用,嵌套的意思就是在if条件语句的语句块中在使用if条件语句,该语句快种包括if语句和else语句。

switch多分支语句:

switch多分分支语句也是条件语句中的一种,它相对if条件语句来说使用的并不多,switch语句语法格式:

switch(表达式){case表达式1:   {        表达式的结果与表达式1相匹配时,所执行的方法体。         break;        }         case 表达式2:    {      表达式的结果与表达式1相匹配时,所执行的方法体。         break;         }.......       default:          表达式的结果与上述表达式的结果都不匹配时,所执行的方法体。}

执行switch语句时,首先执行表达式,求出表达式的值,然后价格该值同每个case关键字后面的值进行比较,如果相等,就执行该这后面的语句,然后执行break语句,结束switch控制语句,如果没有任何一个字与该表达式的值相等时,就执行default关键字后面的语句,switch只能携带一个default语句,位置不收限制,default无论出现在什么位置永远都是最后被匹配的项。

循环控制语句

循环语句的作用是是某一段程序根据需要重读执行很多次,循环语句是有循环体和循环条件两部分组成的,循环体主要是重复执行的语句,循环条件决定循环的开始。

for语句

for循环是一个功能强大且形式灵活的结构,不仅可以用于循环次数已经确定的情况,也可以用于循环次数不确定而只给出循环条件结束的情况,for的基本表现形式:

for([表达式1];[表达式2];[表达式3]){

//循环体(有若干语句组成)

其中表达式1是循环初值表达式,表达式2是是一个关系或逻辑表达式,返回true或false;表达式3是指每次循环时对表达式1中值的修改,在执行for语句时,先执行表达式1而且只执行一次,接着判断表达式2的值是否是true。如果是false则退出循环,反之则执行循环,然后执行表达式3,接着在判断表达式2,重读执行,知道表达式2返回false,结束循环。

for循环语句的三个表达式是不一定全部给出的,初始化表达式可以定义在for循环语句的外面,条件表达式不给出时表示永远为true,条件表达式3不给出时直接在执行条件表达式,这些情况都可以造成for循环语句无限制的循环,也叫做死循环,在开发中要避免死循环的出现。

class ForDemo{  public static void main(String[] args){      for(int x=1;x<5;x++){        System.out.println(x);                }          }}结果为:1,2,3,4, 

for嵌套语句

if语句一样for循环语句也是经常来嵌套使用的,也就是在for循环中再定义for循环,嵌套for循环语句经常用于输出特定图形的开发中因为嵌套fo循环最少执行两次循环,这样我们就可以让外层循环表示行,内层循环表示列来进行输出。

class ForDemo{  public static void main(String[] args){      for(int x=0;x<10;x++){//外循环控制行
              for(int y=0;y<10;y++){
  //内循环控制列
                 System.out.println("*");                                 }                        }        System.out.println();          }}

while循环语句

while循环语句也是循环语句中的一种,主要用于不知道代码具体要执行多少次的循环中。while循环语句的语法格式和for循环语句是完全不同的,它的语法格式为:

while(条件表达式){     方法体 }
其中条件表达式的结果为true时,则会一直执行方法体中代码,直到条件表达式的结果的为false。
class WhileTest{ public static void main(String[] args){        int i =0;       while(i<5){        System.out.rintln("依次循环"+i};            i++;       }
}
}       

使用while循环语句一定要小心while循环语句中的条件表达式如果开始就为false,则该循环将不执行,这里就相当于if条件语句的作用,如果条件表达式一直为true,又会造成死循环,这时通常要给出终止语句,来结束死循环。

 

do-while循环语句

do-while 循环语句是和while循环语句非常相似的,它们最大的不同是:do-while循环语句的循环体至少执行一次,do-while循环语句的语法格式:

    do       {          方法体        }       while(条件表达式);
在执行do-while循环语句时,首先执行其中的方法体,然后执行条件表达式,如果条件表达式的结果为true,则再次执行方法体,依次循环,需要注意的是在do-while循环语句的最后一行有一个分号,这是其他语句没有的。
 

跳转语句

break:使用break语句可以在循环中直接退出循环,也就是说当执行到break语句时立即就不再执行循环体中后面的内容,而是直接结束当前循环。

class BreakTest{ public static void main(String[] args){           for(int x=0;x<10;x++)  {                 if(x==4)                  break;        System.out.println(i+"  ");                 }          }}       

带标号的break

就是用来标记某一条语句的位置,这就是标号,使用标号的break语句格式为:

break  标号;  其作用是立即结束标号所标识的循环,值得注意的是,只有在嵌套循环时才需要使用标号语句,在嵌套循环语句中,可以在循环语句前面加上一个标号,在使用break语句时,用break后面紧接一个循环语句前面的标号,就可以退出循环了。

class  BreakDemo{public static void main(String[] args) {flag;for (int x=2;x<20;x+=5){System.out.println("befor break: "+x);for (y=0;y<10 ;y++){System.out.println("The result  of y is: "+y);if(y==5)break flag; 
                                 //标号结束
}System.out.println("after break: "+x);}}}


continue跳转语句

continue语句只能用在循环中,它的功能是强制一个循环提前终止,即跳过该循环体中continue语句后面尚未执行的所以语句,但不结束整个循环,而是希望继续进行下一轮循环,和break一样他也有带符号的和不带符号的:

不带符号的continue格式:

continue;

class  ContinueDemo{public static void main(String[] args) {for (int x=1;x<20;x++){if(x==8)continue;          System.out.println("x="+x);}}}

带符号的continue

continue语句提供的另一中方法也就是continue后面也可以跟标号,它的语法是:continue 标号;

标号的使用规则与带符号的break语句是一样的,这个标号必须放在循环语句的前面,用来标记这个循环体。

如果标号所标记的是外层循环,在内层循环中执行continue语句,那么内层循环将被终止,立即跳转到外层的循环条件进行判断,以确定是否进行下一轮循环。

class  ContinueTest{public static void main(String[] args) {flag;for (int x=1;x<=9;x++;)//用flag标记外层循环{for (int y=1;y<=x;y++){if (y>x){System.out.println();continue flag;//在内层循环执行带标号continue语句}System.out.println(""+x*y);}System.out.println();}}}


return返回语句


return语句用来从当前的方法中退出,返回调用该方法的语句中,一般返回语句用在子程序或程序方法中,返回语句使用关键字“return”来表示,return语句的表现形式为:return  [表达式];

return语句是在方法中使用的,方法名前面的类型决定了return语句的不同作用,当用void定义了一个方法时,方法体中不一定非要有return语句,因为程序执行完会自然返回的,例如:

public void Call(){   System.out.println();   return}

若要从程序中的某处强制返回到某处方法时,就必须使用return语句,而且方法的返回值类型不是void的才可以。

public classReturnDemo{public static void main(String[] args){   int num = new Demo().getValue(8,9);    //在main方法中,当程序运行到此句话时,就返回了public int getValue(int x,int y)这个方法中。}public int getValue(int x,int y){    if(x>y)return x;else return y;}

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

 

 ----------详细请查看:http://edu.csdn.net

原创粉丝点击