JAVA之流程控制

java流程控制有三种程序结构:顺序结构,分支结构和循环结构

1 顺序结构

顺序结构是三种结构中最容易的最简单的程序结构,它没有特定的语法结构,只需要按照代码的先后顺序执行,即自上而下,依次执行。

2 分支结构

分支结构分为if…else和switch-case两种分支语句。

if…else又包括if单分支语句, if-else双分支语句 ,if-else if -else多分支语句。

2.1  if单分支语句

if(条件表达式){
                语句块;
        }

注意:条件表达式结果为boolean类型,当表达式结果为true,则执行语句块;否则不执行。
        当语句块只有一条执行语句时,一对{}可以省略,但一般建议保留。

2.2  if-else双分支语句

if(条件表达式){
                语句块A;
        }else{

               语句块B;

}

注意:如果条件表达式为真,则执行语句块A,否则执行语句块B。

2.3 if-else if -else多分支语句

  if(条件表达式A){
                语句块A;
        }else if(条件表达式B){
                语句块B;
        }...
        else if(条件表达式N){
                语句块N;
        }else{
                语句块N+1
        }

注意:如果条件表达式A为真,则执行语句块A,否则去判断条件表达式B;如果条件表达式B为真,则执行语句块B,否则去判断下一个条件表达式,以此类推。如果这些条件表达式都不满足,则执行语句N+1。

其中,else是可选的,根据需要可以省略。

除此之外,if结构还可以嵌套使用 ,即:

if(条件1) {
        if(条件2) {
              代码块1
        } else {
              代码块2
        }
} else {
        代码块3
}

注意:在使用if嵌套的时候,为使结构清晰,if和else所包含的代码块应用大括号包起来。

2.4 switch语句

 switch(表达式){
                case 值1:
                        语句块1;
                        break;
                .....
                case 值X:
                        语句块X;
                        break;
                default: 
                        语句块default;
    }      
 

注意:当表达式的值为某一个case值,则进入case值相对应的语句块执行,当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或switch-case结构末尾结束为止。

如果表达式的值为所有case值都不相等,则执行default。

表达式在这里是一个值:但是必须是byte,short,int,char,枚举类型(JDK5.0新增),String(JDK7.0新增)其中的一种。

case的顺序没有强制要求,case 之后只能声明常量,不能声明范围。

3 循环结构

循环,即在某些条件满足的情况下,反复执行特定代码的功能
        有while、do…while、for三种循环语句。
        注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素。

循环结构有四要素:1.初始化条件 2.循环条件( Boolean类型) 3.循环体 4.迭代条件

3.1 while循环

   初始化部分
        while(循环条件部分){
                循环体部分; 
                迭代部分; 
        }

注意:此循环先进行初始化,然后 进行循环条件判断,如果循环条件为true,则执行循环体部分,再依次进行迭代部分,然后再进行循环条件判断。

再次 基础上,不声明迭代部分,则得到其死循环:while(true){

             循环体部分;

       }

3.2 do…while循环

  初始化部分;
        do{
                循环体部分
                迭代部分
        }while(循环条件部分);

用法及注意:  先执行do对应的语句块,然后再判断循环条件,只要循环条件满足,则一直执行循环体,否则结束循环。
其不同于 while循环,先执行,再判断;且do-while循环至少执行一次循环体。

3.3  for循环

for( 初始化循环条件; 循环条件表达式 ; 迭代部分 ){
                循环操作(循环体);
        }

注意:其先执行初始化循环条件,然后使用初始表达式值进行条件判断(如果判断为true,则执行循环操作,否则结束循环),再进行迭代。

当进行循环遍历数组或者集合的时候,又有一种增强for循环,更为方便易用。

增强for内部是使用迭代器完成,也就是说,任何实现了Iterable接口的对象都可以被增强for循环遍历!这也是为什么增强for可以循环遍历集合的原因(Collection是Iterable的子接口)。

不过需要注意的是,Map并没有实现Iterable接口,需要使用entrySet()方法,获取maps集合中的每一个键值对,取得迭代器遍历出对应的值。或者使用keySet()方法,获取maps集合中的所有键,遍历键取得所对应的值,取得迭代器遍历出对应的值。

3.4 循环嵌套

 将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for ,while ,do…while均可以作为外层循环或内层循环。

        实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。

        设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n次。

4 流程跳转

java支持三种流程跳转语句,分别为break,continue和return。

4.1 break

 循环(…) {
                ……
                break;
                ……
        }

用法及注意:break用于终止某个语句块的执行。其通常在循环中与条件语句一起使用。

4.2 continue

  循环(...){
                ....
                continue;
                ....
        }

  用法及注意:continue只能使用在循环结构中;continue语句用于跳过其所在循环语句块的一次执行,继续下一次循环;continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环。

4.3 return

  return并非专门用于结束循环的,它的功能是结束一个方法。当一个方法执行到一个return语句时,这个方法将被结束。

     与break和continue不同,return直接结束整个方法,不管这个return处于多少层循环之内。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值