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

 


------- 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 class	ReturnDemo
{
	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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值