您的位置:首页 > 职场人生

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

2013-09-03 04:20 357 查看


-------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。
classDemo{

publicstaticvoidmain(String[]args){

inta=5;

if(a>3)

{

System.out.println("变量大于3");

}

System.out.println("执行if语句后面的程序');

}

}

完全形式的if条件语句

在执行if条件语句时希望表达式的结果为false,这时就可以使用完全形式的if条件语句,完全形式的if条件语句语法格式为:
if(表达式){
方法体
}else{
方法体
}
classDemo{
publicstaticvoidmain(String[]args){
inta=5;
intb=3;
if(a>b)
{
System.out.println("最大值是"+a);
}
elsse{
System.out.println("最大值是"+b);
}
System.out.println("执行if语句后面的程序');
}

}




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



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

if(表达式){
方法体
}elseif(表达式){
方法体
}else{
方法体

classDemo{
publicstaticvoidmain(String[]args){
inta=5;
intb=3
if(a>b)
{
System.out.println("最大的是"+a);
}elseif(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循环语句无限制的循环,也叫做死循环,在开发中要避免死循环的出现。
classForDemo{
publicstaticvoidmain(String[]args){
for(intx=1;x<5;x++){
System.out.println(x);
}
}
}
结果为:1,2,3,4,

for嵌套语句

if语句一样for循环语句也是经常来嵌套使用的,也就是在for循环中再定义for循环,嵌套for循环语句经常用于输出特定图形的开发中因为嵌套fo循环最少执行两次循环,这样我们就可以让外层循环表示行,内层循环表示列来进行输出。
classForDemo{
publicstaticvoidmain(String[]args){
for(intx=0;x<10;x++){
//外循环控制行
for(inty=0;y<10;y++){
//内循环控制列
System.out.println("*");
}

}
System.out.println();

}
}

while循环语句

while循环语句也是循环语句中的一种,主要用于不知道代码具体要执行多少次的循环中。while循环语句的语法格式和for循环语句是完全不同的,它的语法格式为:
while(条件表达式)
{
方法体
}
其中条件表达式的结果为true时,则会一直执行方法体中代码,直到条件表达式的结果的为false。
classWhileTest{
publicstaticvoidmain(String[]args){
inti=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(条件表达式);

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

跳转语句

break:使用break语句可以在循环中直接退出循环,也就是说当执行到break语句时立即就不再执行循环体中后面的内容,而是直接结束当前循环。
classBreakTest{
publicstaticvoidmain(String[]args){
for(intx=0;x<10;x++){
if(x==4)
break;
System.out.println(i+"");
}

}
}

带标号的break

就是用来标记某一条语句的位置,这就是标号,使用标号的break语句格式为:
break标号;其作用是立即结束标号所标识的循环,值得注意的是,只有在嵌套循环时才需要使用标号语句,在嵌套循环语句中,可以在循环语句前面加上一个标号,在使用break语句时,用break后面紧接一个循环语句前面的标号,就可以退出循环了。
classBreakDemo
{
publicstaticvoidmain(String[]args)
{
flag;
for(intx=2;x<20;x+=5)
{
System.out.println("beforbreak:"+x);
for(y=0;y<10;y++)
{
System.out.println("Theresultofyis:"+y);
if(y==5)breakflag;
//标号结束
			}
System.out.println("afterbreak:"+x);
}
}
}



continue跳转语句

continue语句只能用在循环中,它的功能是强制一个循环提前终止,即跳过该循环体中continue语句后面尚未执行的所以语句,但不结束整个循环,而是希望继续进行下一轮循环,和break一样他也有带符号的和不带符号的:
不带符号的continue格式:
continue;
classContinueDemo
{
publicstaticvoidmain(String[]args)
{
for(intx=1;x<20;x++)
{
if(x==8)
continue;
System.out.println("x="+x);
}
}
}

带符号的continue
continue语句提供的另一中方法也就是continue后面也可以跟标号,它的语法是:continue标号;
标号的使用规则与带符号的break语句是一样的,这个标号必须放在循环语句的前面,用来标记这个循环体。
如果标号所标记的是外层循环,在内层循环中执行continue语句,那么内层循环将被终止,立即跳转到外层的循环条件进行判断,以确定是否进行下一轮循环。
classContinueTest
{
publicstaticvoidmain(String[]args)
{
flag;
for(intx=1;x<=9;x++;)//用flag标记外层循环
{
for(inty=1;y<=x;y++)
{
if(y>x)
{
System.out.println();
continueflag;//在内层循环执行带标号continue语句
}
System.out.println(""+x*y);
}
System.out.println();
}
}
}



return返回语句

return语句用来从当前的方法中退出,返回调用该方法的语句中,一般返回语句用在子程序或程序方法中,返回语句使用关键字“return”来表示,return语句的表现形式为:return[表达式];
return语句是在方法中使用的,方法名前面的类型决定了return语句的不同作用,当用void定义了一个方法时,方法体中不一定非要有return语句,因为程序执行完会自然返回的,例如:
publicvoidCall()
{
System.out.println();
return
}

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

publicclass	ReturnDemo
{
publicstaticvoidmain(String[]args)
{
intnum=newDemo().getValue(8,9);
//在main方法中,当程序运行到此句话时,就返回了publicintgetValue(intx,inty)这个方法中。
}
publicintgetValue(intx,inty)
{
if(x>y)returnx;
elsereturny;
}

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

----------详细请查看:http://edu.csdn.net
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: