Java的流程控制

目录

一、概述

 二、分支结构

if语句

switch语句

三、 循环结构

for 循环

while 循环

do-while 循环

while 循环和 do-while 循环的区别?

四、break && continue 

 五、结束多重循环


一、概述

       任何简单或复杂的算法都可以由顺序结构、分支结构和循环结构这三种基本结构组合而成。
       它们的共同点是都包含一个入口和一个出口,它们的每个代码都有机会被执行,不会出现死循环。

  • 顺序结构:是一种基本的控制结构,它按照语句出现的顺序执行操作
  • 分支结构:又被称为选择结构,根据条件成立与否来执行操作, 
  • 循环结构:是一种重复结构,如果条件成立,它会重复执行某一循环体,直到出现不满足的条件为止。

 二、分支结构

           在JAVA中分支结构 分为:

  •                if语句
  •               switch语句

          if语句

              if 条件结构:是根据   条件判断    之后再做处理

              有单分支、双分支、多分支之分!

             if语句格式有以下几种:

  • if(条件语句){…}
  • if (条件语句){…}else{…}
  • if (条件语句){…}else if(条件语句){…}
  • if (条件语句){…}else if(条件语句){…}else{…}

          switch语句

             switch语句格式为:

switch(表达式){ 
case   取值 1: 
                 语句块 1;
                 break; 
case   取值 n: 
                 语句块 n;
                 break; 
default: 
                语句块 n+1;
                 break; 


switch 语句有关规则 :

  •        表达式的返回值必须是下述几种类型之一:int, byte, char, short,String (还有枚举); 
  •        case 子句中的取值必须是常量,且所有 case 子句中的取值应是不同的; 
  •         default 子句是可选的; 
  •         break 语句用来在执行完一个 case 分支后使程序跳出 switch 语句块;
  •         如果 case 后面没有写 break 则直接往下面执行
  •        Case 后面的执行体可写{ }也可以不写{ }

               case “1”:
               case “2”:
               case “3”:
               syso(“你好”)
               break;             

     //表示 1 、 2 、3,都输出“你好” 时,可以这样简写    ;不同条件 相同输出,可以利用  不选取 “break”,代码还会直接往下面执行的特性

三、 循环结构

       循环语句功能:在循环条件满足的情况下,反复执行特定代码
        循环语句分类 :                    

  •      for 循环                 
  •      while 循环                      
  •       do/while 循环

   


       for 循环


   语法:
             for(初始化参数;判断条件 ;更新循环变量){
                                循环体;
             }  

下面举两个有意思的例子:

  •           //相当于 死循环

                      for ( ; ;){

                              循环体;

                         }

  •           //先打印   1后面 循环  打印  2、3

                  for (   syso(1)   ;   true   ;   syso(2)   ) {

                                  syso(3);

                          }
 


   while 循环

  •              符合条件,循环继续执行;否则,循环退出
  •              特点:先判断,再执行
  •              语法结构为:

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


   do-while 循环

  •              先执行一遍循环操作,符合条件,循环继续执行;否则,循环退出
  •              特点:先执行,再判断
  •              语法结构:

                              do {
                                       循环操作
                                   }while ( 条件表达式 );


while 循环和 do-while 循环的区别?

  •   while:先判断条件,如果条件满足,再执行循环操作
  •   do while:先执行一遍循环操作,然后再判读条件,如果条件满足,继续执行循环操作

四、break && continue 

    break与continue语句:

  •          break:是用于终止本轮所有次循环。      

                  结束该循环  即不执行本次循环中break后面的语句,     直接结束本轮循环

  •          continue:是用于终止本轮本次循环。      

                  结束该循环中  某一次 循环     即本次循环中continue后面的代码不执行,  进行下一次循环的入口判断

package task;

public class Test {
    public static void main(String[] args) {
        for (int i=0; i<3; i++) {
            for (int j=0 ; j<4; j++) {
                if (j == 2){
                    break;
                }
                    System.out.print(j+"\t");
            }
            System.out.println();
        }
    }
}

结果为:

 可以看到  打印了 3 次 “0  1”,这是因为:

  •         第一层for循环 循环了三次,所以打印了3次    “0   1”
  •         而每一次的第一层循环体中,执行了第二层for循环,在循环两次后(即满足if条件), break了,结束了!!!本轮!!!第二层的循环;
  •        但程序没有直接结束,而是进行下一次的第一层for循环!!

如果 把上面代码中 的 “break”改成 “continue”,会输出什么呢?

结果为:

 可以看到打印了 3次  “0 1 3” ;这是因为

  •         第一层for循环 循环了三次,所以打印了3次    “0   1   3”
  •         而每一次的第一层循环体中,执行了第二层for循环  的 每一次循环都打印 j;但在满足if条件时,couture了,结束了!!!本次!!!循环,就不执行打印语句,直接进入    这第二层循环的下一次 循环。
  •        但程序没有直接结束,而是进行下一次的第一层for循环!!

可以看到  本轮 与  本次  这两个字样,

 你可以这样理解 :

          for (int i = 0; i<10; i++){.

                System.out.println(“你好”);      

}

        本轮 for循环,  循环10次,打印"你好"

 五、结束多重循环

package task;

public class Test {
    public static void main(String[] args) {
         aa : for (int i=0; i<3; i++) {   // !!!关注点!!
              for (int j=0 ; j<4; j++) {
                if (j == 2){
                    break aa;   // !!!关注点!!
                }
                    System.out.print(j+"\t");
            }
            System.out.println();
        }
    }
}

结果为:


   可以看到,这个代码的嵌套循环,跟上面的代码 几乎无异,

  • 只不过是在第一次for循环里,为其定义了一个 “aa”名字,
  • 然后break语句里,加入了“aa”,

   其效果为:当执行到 break语句时,直接结束掉  名为aa  的for循环

  如过 仅有  break;  那只能 结束掉 第二层循坏,程序重新回到  第一层循环体,接着循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

新计划

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值