Java基础之流程控制语句

举报
袁袁袁袁满 发表于 2022/04/06 22:46:05 2022/04/06
【摘要】 1 流程控制语句 1.1 流程控制语句分类顺序结构分支结构(if、switch)循环结构(for、while、do…while) 1.2 if语句 1.2.1 if语句格式1格式:if(关系表达式) { 语句体;}执行流程:1、首先计算关系表达式的值2、如果关系表达式的值为true就执行语句体3、如果关系表达式的值为false就不执行语句体4、继续执行后面的语句内容 1.2.2 if...

1 流程控制语句

1.1 流程控制语句分类

  • 顺序结构

  • 分支结构(if、switch)

  • 循环结构(for、while、do…while)

1.2 if语句

1.2.1 if语句格式1

  • 格式


if(关系表达式) {


    语句体;


}


  • 执行流程

1、首先计算关系表达式的值

2、如果关系表达式的值为true就执行语句体

3、如果关系表达式的值为false就不执行语句体

4、继续执行后面的语句内容

1.2.2 if语句格式2

  • 格式


if(关系表达式) {


    语句体1;


}else {


    语句体2;


}


  • 执行流程

1、首先计算关系表达式的值

2、如果关系表达式的值为true就执行语句体1

3、如果关系表达式的值为false就执行语句体2

4、继续执行后面的语句内容

1.2.3 if语句格式3

  • 格式


if(关系表达式1) {


    语句体1;


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


    语句体2;


}


...


else {


    语句体n+1;


}


  • 执行流程

1、首先计算关系表达式1的值

2、如果值为true就执行语句体1;如果值为false就计算关系表达式2的值

3、如果值为true就执行语句体2;如果值为false就计算关系表达式3的值

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

1.3 switch语句

  • 格式


switch(表达式) {


    case1:


        语句体1;


        break;


    case2:


        语句体2;


        break;


    ...


    default:


        语句体n+1;


        break; //最后一个可以省略


  • 格式说明

- 表达式:取值为byte、short、int、char,JDK5以后可以是枚举,JDK7以后可以是String

- case:后面跟的是要跟表达式比较的值

- break:表示中断结束的意思,用来结束switch语句

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

  • 执行流程

1、首先计算表达式的值

2、以此和case后面的值进行比较,如果有对应值,就会执行相应语句,在执行过程中,遇到break就会结束

3、如果所有的case的值和表达式的值都不匹配,就会执行default里面的语句体,然后程序结束

  • 注意事项:在switch语句中,如果case控制的语句后面不写break,将会出现 穿透 现象,在不判断下一个case的情况下,向下运行,直到遇到break,或者整体程序结束

  • 案例:初夏秋冬(case穿透)



import java.util.Scanner;


public class Demo {


    public static void main(String[] args) {


        Scanner sc = new Scanner(System.in);


        System.out.println("请输入一个月份");

        int month = sc.nextInt();


        switch(month) {


            //case穿透


            case 1:


            case 2:


            case 12:


                System.out.println("冬季");


                break;


            case 3:


            case 4:


            case 5:


                System.out.println("春季");


                break;


            case 6:


            case 7:


            case 8:


                System.out.println("夏季");


                break;


            case 9:


            case 10:


            case 11:


                System.out.println("秋季");


                break;


            default:


                System.out.println("你输入的月份有误");


        }


    }


}


1.4 for循环语句

  • 格式


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


    循环体语句;


}


  • 流程图

在这里插入图片描述

  • 执行流程

1、执行初始化语句

2、执行条件判断语句,且看结果是true还是false

如果是false,循环结束;如果是true,继续执行

3、执行循环体语句

4、执行条件控制语句

5、返回到2继续

案例:水仙花数

  • 什么是水仙花数?

1、水仙花数是一个三位数

111   333   456   999   530

2、水仙花数的个位、十位、百位的数字立方和等于原数

在这里插入图片描述

  • 怎么获取个位、十位、百位上的数

1、个位数

371 ;1就是原始数字对10进行取余的运算结果;371 % 10 = 1

2、十位数

7;371通过除以10,可以将7移动到个位上去(整数);371 / 10 = 37

37 ;37对10进行取余可以得到最后一位的值7; 37 % 10 = 7

3、百位数

3 ; 3就是原始数字除以100的结果(整除);371 /100 = 3

4、思考:任意数字的指定位置上的数值如何求?

123456789  ; 先10000得到12345;再对10取余得到5



public class Demo {


    public static void main(String[] args) {


        for(int i=100;i<=999;i++) {


            int a = i % 10; //个位


            int b = i / 10 % 10; //十位


            int c = i / 100 ; //百位


            if(a*a*a + b*b*b + c*c*c == i) {


                System.out.println("水仙花数:"+i); //有153、370、371、407


            }


        }


    }


}


1.5 while循环语句

  • 用法:用来描述未知次数循环

  • 格式



初始化语句;


while(条件判断语句) {


    循环体语句;//比如:输出内容


    条件控制语句;


}


  • 执行流程

1、执行初始化语句;

2、执行条件判断语句,看其结果为true还是false

如果是false,循环结束;如果是true,继续执行

3、执行循环体语句

4、执行条件控制语句

5、回到2继续

1.6 do…while循环语句

  • 格式


初始化语句;


do{


    循环体语句;//比如:输出内容


    条件控制语句;


}while(条件判断语句);


  • 执行流程

1、执行初始化语句

2、执行循环体语句

3、执行条件控制语句

4、执行条件判断语句,看其结果为true还是false

如果是false,循环结束;如果是true,继续执行

5、回到2继续

1.7 三个循环的区别

1.7.1 第一

  • do…while:先输出一次再进行判断(最少输出一次)

  • for、while:先判断再输出

1.7.2第二

  • for循环结束后变量不能使用

  • while循环结束后还可以使用(打印变量次数)

1.7.3死循环

  • for语句


for(;;){


    System.out.println("死循环");


}


  • while语句


while(true){


    System.out.println("死循环了");


}


  • do…while语句


 do{


    System.out.println("死循环");


}while(true);


1.8 跳转控制语句

  • continue:用于循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次执行

  • break:用于循环中,基于条件控制,终止循环体内容执行,结束当前整个循环

  • 范例:



public class Demo {


    public static void main(String[] args) {


        for(int i=1;i<=5;i++) {


            if(i%2==0) {


                //continue; //为偶数时跳过输出,1 3 5


                break; //当遇到偶数终止循环,只输出1


            }


            System.out.println(i);


        }


    }


}


1.9 循环嵌套



public class Demo {


    public static void main(String[] args) {


        //九九乘法表


        for(int i=1;i<=9;i++) {


            for(int j=1;j<=i;j++) { //j<=i,当i=1时,j=1,输入一次后循环结束;i的值加1,i=2,j=1,输出两次后跳出...


                System.out.print(i +"*"+j + "=" + i*j +" ");


            }


            System.out.println();


        }


    }


}


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。