Java中流程控制:选择、循环、控制跳转

1 选择流程控制语句

1.        顺序结构概述是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的

01

02

03

04

05

06

07

08

09

10

11

12

/*

 * 顺序结构:从上往下,依次执行

 */

public class OrderDemo {

        public static void main(String[] args) {

                System.out.println("开始");

                System.out.println("语句A");

                System.out.println("语句B");

                System.out.println("语句C");

                System.out.println("结束");

        }

}


              i.         If语句格式1及执行流程

if语句第一种格式:

if(关系表达式) {

                  语句体

       }

执行流程:

首先判断关系表达式看其结果是true还是false

如果是true就执行语句体

如果是false就不执行语句体



01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

public class IfDemo {

        public static void main(String[] args) {

                System.out.println("开始");

                // 定义两个变量

                int a = 10;

                int b = 20;

 

                if (a == b) {

                        System.out.println("a等于b");

                }

 

                int c = 10;

                if (a == c) {

                        System.out.println("a等于c");

                }

 

                System.out.println("结束");

        }

}


              i.         If语句格式2及执行流程

if语句第二种格式:

if(关系表达式) {

                  语句体1;

       }else {

                  语句体2;

       }

执行流程

首先判断关系表达式看其结果是true还是false

如果是true就执行语句体1

      如果是false就执行语句体2

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

public class IfDemo2 {

        public static void main(String[] args) {

                System.out.println("开始");

                // 判断给定的数据是奇数还是偶数

                // 定义变量

                int a = 100;

                // 给a重新赋值

                a = 99;

 

                if (a % 2 == 0) {

                        System.out.println("a是偶数");

                } else {

                        System.out.println("a是奇数");

                }

 

                System.out.println("结束");

        }

}


              i.         If语句格式3及执行流程

if语句第三种格式:

if(关系表达式1) {

                  语句体1;

       }else if (关系表达式2) {

                  语句体2;

       }

    …

       else {

                  语句体n+1;

       }

执行流程

首先判断关系表达式1看其结果是true还是false

如果是true就执行语句体1

如果是false就继续判断关系表达式2看其结果是true还是false

如果是true就执行语句体2

如果是false就继续判断关系表达式…看其结果是true还是false

如果没有任何关系表达式为true,就执行语句体n+1

01

02

03

04

05

06

07

08

09

10

11

int x = 5;

int y = 0;

                if (x >= 3) {

                        y = 2 * x + 1;

                } else if (x >= -1 && x < 3) {

                        y = 2 * x;

                } else if (x <= -1) {

                        y = 2 * x - 1;

                }

                 

                System.out.println("y的值是:"+y);


if
语句实现判断学生等级:

键盘录入学生考试成绩,请根据成绩判断该学生属于哪个级别

* 90-100   优秀

* 80-90 

* 70-80 

* 60-70 及格

* 60以下       不及格
自己先思考再看答案吧!


答案:

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

public static void main(String[] args) {

                //创建对象

                Scanner sc = new Scanner(System.in);

                 

                //接收数据

                System.out.println("请输入学生的考试成绩:");

                int score = sc.nextInt();

if(score<0 || score>100){

                        System.out.println("你的成绩是错误的");

                }else if(score>=90 && score<=100){

                        System.out.println("你的成绩属于优秀");

                }else if(score>=80 && score<90){

                        System.out.println("你的成绩属于好");

                }else if(score>=70 && score<80){

                        System.out.println("你的成绩属于良");

                }else if(score>=60 && score<70){

                        System.out.println("你的成绩属于及格");

                }else {

                        System.out.println("你的成绩属于不及格");

                }

        }



 2. switch语句的格式及执行流程

switch表示这是switch语句

表达式的取值:byte,short,int,char

JDK5以后可以是枚举

JDK7以后可以是String

case后面跟的是要和表达式进行比较的值

语句体部分可以是一条或多条语句

break表示中断,结束的意思,可以结束switch语句

      default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
      执行顺序:

首先计算出表达式的值

其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。

最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

public class SwitchDemo {

        public static void main(String[] args) {

                //创建键盘录入对象

                Scanner sc = new Scanner(System.in);

                 

                //接收数据

                System.out.println("请输入一个数字(1-7):");

                int weekday = sc.nextInt();

                 

                //switch语句实现选择

                switch(weekday) {

                case 1:

                        System.out.println("星期一");

                        break;

                case 2:

                        System.out.println("星期二");

                        break;

                case 3:

                        System.out.println("星期三");

                        break;

                case 4:

                        System.out.println("星期四");

                        break;

                case 5:

                        System.out.println("星期五");

                        break;

                case 6:

                        System.out.println("星期六");

                        break;

                case 7:

                        System.out.println("星期日");

                        break;

                default:

                        System.out.println("你输入的数字有误");

                        break;

                }

        }

}

2  循环流程控制语句

          接下来是循环了!循环?单曲循环,就是一遍又一遍啊,计算机对于简单的重复命令执行起来是非常快的,利用这点学会了循环我们可以利用计算机做很多费时的计算工作。来看看吧!



a.  for循环语句格式:

 

     

for(

初始化语句;判断条件语句;控制条件语句) {

      循环体语句;

}

如果我让你从0数到1万你需要几分钟?估计要数很久了,那交给计算机的话你猜需要多久?

你可以用for循环打印0到1万的数字,或者浪漫一点输出1万次 i love u


怎么用代码实现?自己试试!



1

2

3

for(int x=0; x<10000; x++) {

                        System.out.println("i love u");

                }




现在我们把forif结合起来做个小练习:


输出3位数中的所有水仙花数,并统计总个数。

什么是水仙花数呢?

所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。

举例:153就是一个水仙花数。153= 1*1*1 + 5*5*5 + 3*3*3

 

b:  while循环   基本格式

   while(判断条件语句) {

         循环体语句;

   }

 

    扩展格式

   初始化语句;

   while(判断条件语句) {

         循环体语句;

         控制条件语句;

}

 

和刚才for有点相似,在一定程度上可以替换使用。现在让我们用while输出10Java学习者你好棒棒吧!

 

1

2

3

4

while(x<=10) {

            System.out.println("Java学习者你好棒棒!");

            x++;

}

 

哈哈,很棒,接下来还有个do…while和控制语句,学完就收工啦~加油~

基本格式

   do {

         循环体语句;

   }while((判断条件语句);

扩展格式

   初始化语句;

   do {

         循环体语句;

         控制条件语句;

} while((判断条件语句);

 


c.  三种循环的区别

虽然可以完成同样的功能,但是还是有小区别:

do…while循环至少会执行一次循环体。

for循环和while循环只有在条件成立的时候才会去执行循环体

for循环语句和while循环语句的小区别:

使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。

 

 

 

3  控制跳转语句


a)  控制跳转语句break

break的使用场景:

    在选择结构switch语句中

    在循环语句中

break的作用:

       跳出单层循环

01

02

03

04

05

06

07

08

09

10

11

12

public class BreakDemo {

        public static void main(String[] args) {

                //break;

                 

                for(int x=1; x<=10; x++) {

                        if(x == 3) {

                                break;

                        }

                        System.out.println("HelloWorld");

                }

        }

}




b)  控制跳转语句continue

    在循环语句中


continue的作用:

    单层循环对比break,然后总结两个的区别

        break  退出当前循环

        continue  退出本次循环继续下次循环

01

02

03

04

05

06

07

08

09

10

11

12

13

public class ContinueDemo {

        public static void main(String[] args) {

                //continue;

                 

                for(int x=1; x<=10; x++) {

                        if(x == 3) {

                                //break;

                                continue;

                        }

                        System.out.println("HelloWorld");

                }

        }

}



猜你喜欢

转载自blog.csdn.net/gaoqisong/article/details/80633663