您的位置:首页 > 编程语言 > Java开发

Java基础知识02-流程控制结构

2017-12-23 18:37 190 查看
1.   流程控制简介

² 程序控制结构是指以某种顺序执行的一系列动作,用于解决某个问题。程序控制结构是通过控制语句来实现对程序流程的选择、循环、转向和返回等。

² 程序控制结构包括:顺序结构、分支结构、循环结构三大结构,如图:

               

2.  顺序结构

1.1  释义

所谓顺序结构程序就是指按语句出现的先后顺序执行的程序结构,是程序中最简单的结构。编程语言并不提供专门的控制流语句来表达顺序控制结构,而是用程序语句的自然排列顺序来表达。计算机按此顺序逐条执行语句,当一条语句执行完毕,控制自动转到下一条语句。

2.2  语句格式

int a = 11;
int b = 2;
int c = a+b;
System.out.println("a+b的结果为:"+c);
 

3.  分支结构

3.1释义

分支结构又称为选择结构。当程序执行到控制分支的语句时,首先判断条件,根据条件表达式的值选择相应的语句执行(放弃另一部分语句的执行)。分支结构包括单分支、双分支和多分支三种形式。

3.2 语句格式

1) if语句格式(单分支结构)

   if(布尔表达式){

       语句块;

   }

 

说明:当语句块为一条语句时,大括号可以省略。只有布尔表达式为true时,才进入if语句中。

 

2) if-else语句格式(双分支结构)

   if(布尔表达式){

       语句块;//if分支

   }else{

       语句块;//else分支

   }

3) if-else if-else语句格式(多分支结构)

   if(布尔表达式){

       语句块;

   }else if(布尔表达式){

       语句块;

   }else{

       语句块;

}

 

演示示例

public class TestIfElse{
   public static void main(String[] args) {
       int age = 22;
       if (age % 2 != 0) {
                System.out.println("奇数");
       }
       //建议只有一条语句也加入大括号
       if (age % 2 == 0){
                System.out.println("是偶数");
       }
    
       if ( age >0 && age <=18){
                System.out.println("未成年");
       }
       if (age > 18 && age <=40) {
                System.out.println("青年");
       }
       if (age > 40 && age<=50) {
                System.out.println("中年");
       }
       //这种方法效率会好一些,如果年龄为5岁
       //以下代码只判断一次就可以,而上面的代码会判断多次
       if ( age >0 && age <=18){
                System.out.println("未成年");
       }else if (age > 18 && age <=40) {
                System.out.println("青年");
       } else if (age > 40&& age<=50) {
                System.out.println("中年");
       }
   }
}
 

4) switch...case

switch也称为多重分支,具体格式如下

switch (表达式) {

       case 值1:

                 语句

       break;

       case 值2:

                 语句

           break;

       default:

                 语句

       break;

}

 

说明

²  表达式的值只能为:char、byte、short、int类型、String、enum类型,其它类型均非法

²  break语句可以省略,但会出现switch穿透

²  default语句也可以省略,一般不建议省略,并且放置在最后

 

演示示例

public class TestSwitchCase {
   public static void main(String[] args) {
       String type = "dog";
       switch(type) {
            case "cat":
                System.out.println("喵");
                break;//注意break
            case "dog":
                System.out.println("旺");
                break;
            case "sheep":
                System.out.println("咩");
                break;
            default:
                System.out.println("哇!");
       }
       System.out.println("switch执行结束!");
   }  
}
 

4.  循环结构

4.1 释义

²  当程序执行到循环控制语句时,根据循环判定条件对一组语句重复执行多次。循环结构可以看成是一个条件判断语句和一个向回转向语句的组合。另外,循环结构的三个要素:循环变量、循环体和循环终止条件。

²  while、do…while、for三种循环。

4.2 语句格式

1) while语句格式

  while(布尔表达式) {

     循环体// 一条或多条语句

  }

 

说明:

²  先执行布尔表达式,若为false,则while语句结束 ;

²  若为true,则执行循环体,然后再执行布尔表达式的结果为true还是false,如此反复执行,直接返回结果false,while语句结束。

 

             

演示示例

public class TestWhile {
   public static void main(String[] args) {
       int i = 1;
       //注意死循环问题
       while(i<=5) {
            System.out.println(i);
            i++;
       }
   }
}
2) do while格式

do {

      循环体

}while(条件判断表达式);

 

注意:

²  while括号后必须写分号

²  do while与while非常相似,不同点在于do while先执行循环体,也就是说不管条件符不符合,循环体至少执行一次

 

             

                   演示示例

public class TestDoWhile {
   public static void main(String[] args) {
       int i = 1;
       do{
            System.out.println(i);
            i++;
       }while(i<=5); //注意分号
   }
}
 

              3) for语句格式

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

   循环体 //一条或多条语句

}

 

执行过程:

首先执行”表达式1“,再执行”条件表达式“,如果”表达式2”结果为false,则for循环结束;如果”表达式2”的结果为true,则执行”循环体”;再执行”表达式3”,再执行”表达式2”,判断结果真假,直到”表达式2为false”结束。

 

演示示例

public class TestFor {
   public static void main(String[] args) {
       for (int i=1; i<=5; i++) {
            System.out.println(i);
       }
   }
}
 

      

4.3 break和continue跳转语句

1) break语句

强制退出某个循环体,结束循环语句的执行

 

public class TestBreak {
   public static void main(String[] args) {
       for (int i=1; i<=10; i++) {
            System.out.println(i);
            if (i == 5) {
                break; //会跳出当前循环
            }
       }
       //break跳到这里
   }
}
 

2) continue语句

终止某次循环过程,跳过continue语下方未执行的代码,开始下一步循环过程

 

public class TestContinue {
   public static void main(String[] args) {
       for (int i=1; i<=10; i++) {
            if (i == 5) {
                continue; //会跳该次循环,跳到i++代码处
            }
            System.out.println(i);
       }
   }
}
 

4.4 控制语句解释

Java语言的程序控制语句

² 条件判断语句:if语句、switch语句

² 循环执行语句:do while语句、while语句、for语句

² 跳转语句:break语句、continue语句、return语句

 

控制语句类型
关键字
作用
选择结构语句

if、if else、else if

switch

通过开关机制,选择要执行的代码

循环结构语句

for

while

do while

通过循序机制,反复执行相同的代码段

改变语句执行序

break

continue

通过打断或继续机制,改变当前工码的执行顺序

 

4.5 三种循环结构的异同点

² 用while和do…while循环时,循环变量的初始化的操作应在循环体之前,而for循环一般在语句1中进行的。

² while
循环和for循环都是先判断表达式,后执行循环体;而do…while循环是先执行循环体后判断表达式,也就是说do…while的循环体最少被执行一次,而while 循环和for就可能一次都不执行。

² 这三种循环都可以用break语句跳出循环,用continue语句结束本次循环。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: