• Java基础复习第三天:流程控制语句if()...else、switch() case、do while()、for循环()


    第一章 流程控制
    1.流程控制的分类
    a.顺序结构:同一个方法中的代码一定是从上到下依次执行的

    b.选择结构/判断结构

    判断语句if,一共有三种格式:

    格式一:
    if(判断语句){

    代码块;

    }

    ....其他代码

    执行流程:

    当代码执行到if语句时,首先计算判断语句的结果

    如果是true,那么执行代码块,如果是false跳过代码块

    格式二:

    if(判断语句){

    代码块1;

    } {

    代码块2;

    }

    ...其他代码

    执行流程:

    当代码执行到if语句时,首先计算判断语句的结果

    如果结果是true,执行代码块1,如果是false,执行代码块2

    注意: 代码块1和代码块2  有且仅有一个会执行

    格式三:

    if(判断语句1){

    代码块1;

    }else if(判断语句2){

    代码块2;

    }else if(判断语句3){

    代码块3;

    }.....else{

    代码块n;

    }

    执行流程:
    先判断 判断语句1 如果是true执行代码块1,执行之后整个if流程结束

    再判断 判断语句2 如果是true执行代码块2,执行之后整个if流程结束

    再判断 判断语句3 如果是true执行代码块3,执行之后整个if流程结束

    依次类推....

    如果以上所有的判断语句都是false,那么无条件执行else后面代码块n

    注意: 以上代码块1到代码块n 有且仅有一个会执行

    总结:

    三种if分别什么时候使用?

    如果只需要判断一种情况,那么用if的第一种格式

    如果只需要判断两种情况,那么用if的第二种格式

    如果需要判断多种情况,那么用if的第三种格式

    选择语句switch 就一种格式:
    格式:

    switch(表达式/变量名){

    case 固定值1:

    代码块1;

    break;

    case 固定值2:

    代码块2;

    break;

    case 固定值3:

    代码块3;

    break;

    ....

    default: // 默认

    代码块n;

    break;

    }

    ....其他代码

    执行流程:

    当代码执行到swtich时,首先计算表达式或者变量的值

    取出表达式或者变量的值 与下面固定值进行匹配,如果相等,那么久执行后面的代码块

    执行完之后,遇到了break,break含义是结束整个switch

    如果所有的固定值都没有匹配的,那么无条件执行default后面的代码块n

    注意1:  以上代码块1-代码块n 有且仅有一个会执行

    注意2: switch(表达式)中表达式的数据类型,

    JDK7之前的  byte short(char) int 枚举(enum)

    JDK7之后新增 String

    c.case的穿透

    i.break能不能不写???可以不写

    ii.如果删除了case后面的break那么出现"穿透现象"

    什么叫穿透现象:

    如果case后面没有break,那么会下一个case后的代码块,而不需判断

    iii.使用case的穿透现象改造月份案例,可以达到简化代码的作用

    d.循环结构

    让一段代码反复的执行

    所有的循环结构都有四部分组成:

    ①.定义性语句(计数器)

    ②.循环条件(控制循环是否继续)

    ③.循环体(循环要执行的那段代码)

    ④.增量/步进语句(让计算器计数)

    循环结构之for

    格式:

    for(①.定义性语句(计数器);②.循环条件(控制循环是否继续);④.增量/步进语句){

    ③.循环体(循环要执行的那段代码)

    }

    ....其他代码

    执行流程:

    ① ---> ②③④ ---> ②③④ ---> ...--->②

    练习1: 打印 10次 "我对面的后面爱凤姐"

    // 计数器从0开始 那么 计数器<几 循环就是几次
    for (int i = 0;i < 10;i++){
        // 0 1 2 3 4 5 6 7 8 9
        System.out.println("我对面的后面爱凤姐");
    }

    练习2:使用循环,打印1-100之间所有的整数

    //1.明确循环次数
    for (int i = 1; i<101;i++){
        //2.分析规律:
        /*
        *   i的值     要打印的值
        *   1           1
        *   2           2
        *   3           3
        *   x           x
        *   规律:要打印的值 和 i的值是一样的
        * */
        /*
        *  i = 1 2 3 4 5....100
        *  打印 = 1 ..... 100
        *  i 和 要打印的值一一对应
        * */
        System.out.println(i);
    }

    练习3:使用循环,打印1-100之间所有的整数的累加和:

    //定义一个求和的变量名
            int sum = 0;
            //1.先想办法打印1-100
            for (int i = 1;i < 101;i++) {
                // i = 1 2 3 4... 100
                //打印= 1 2 3 4....100
    //            System.out.println(i);
                //2.把要打印的数,加到sum中
    //            sum = sum+i;
                sum+=i;
                /*
                *  sum = 1;
                *  sum = 1 + 2
                *  sum = 1 + 2 + 3;
                *  sum = 1 + 2 + 3 + 4
                *  ...
                *  sum = 1 + 2 + 3 + 4 ... 100
                *
                * */
            }
            //2.打印sum的值
            System.out.println(sum);

    练习4:使用循环,计算1-100之间的偶数和

    //分步骤慢慢计算

    //1.打印1-100所有的数
    //2.求1-100的和
    //3.求偶数和
    int sum = 0;
    for (int i = 1; i < 101; i++) {
       //求偶数和
        //判断偶数的条件
        if(i % 2 == 0) {
            sum += i;
        }
    }
    //4.最后打印偶数和sum
    System.out.println(sum);

    循环结构之while

    格式:

    ①计算器;

    while(②循环条件){

    ③循环体;

    ④增量语句;

    }

    执行流程:
    ①--->②③④---->②③④--->②③④ -->.....->②

    练习1:打印10次"HelloWorld"

    //使用while
    int i = 0;
    while (i < 10) {
        System.out.println("HelloWorld");
        //千万别忘记++
        i++;
    }
    练习2:计算1-100之间的奇数和

    //计算器
    int i = 1;
    //求和变量
       int sum = 0;
       while(i < 101){
          //判断是否为奇数
            if(i % 2 == 1) {
              //如果是加到sum中
               sum += i;
          }
           i++;
         }
              //打印结果
             System.out.println(sum);

    循环结构之do...while

    ①.定义性语句

    ②.循环条件

    ③.循环体

    ④.增量/步进语句

    格式:

    ①.定义性语句

    do{

    ③.循环体

    ④.增量/步进语句

    }while(②.循环条件);

    执行流程:
               ①③④ ---> ②③④ --> ②③④---> ...--->②

    do..while循环的特点: 无论循环条件是什么,都会先执行一次循环体

    总结:for和while和do..while循环的区别

    do..while(基本不用的): 循环体至少执行一次

    for循环(最常用的):循环结束之后,计数器不能访问

    while循环(偶合用用的):循环结束之后,计数器还可以继续使用

    2.死循环
    永不停止的循环

    格式:

    while(true){

    循环体;

    }

    for(;;){

    循环体;

    }

    如果没有循环体,那么大括号可以省略,但是必须用;结束

    while (true);
                for (;;);

    3.跳出语句(循环控制语句)
    break;

    a.第一可以用于switch中,代表结束整个switch

    b.第二可以用于循环中,立刻结束整个循环

    continue;

    只能用于循环,跳过本次循环

    注意: break只能用于swtich和循环,不能用于if

    4.嵌套循环
    一个循环的循环体中又有另外一个循环

    格式:

    for(;;){

    for(;;){

    }

    }

    比如:

    //从 2011年 到 2013年 这三年的每年365天
    for(int j = 2011;j < 2014;j++) {
        for(int i = 1;i<=365;i++){
            System.out.println(j+"年,"+"第"+i+"天");
        }
    }

    //从 2021年 到 2023年 这三年的每年12月
    for(int i = 2021;i < 2024;i++) {
        //12个月
        for (int j = 1; j < 13; j++) {
            //i代表年 j代表月
            System.out.println(i+"年"+j+"月");
        }
    }

    //打印图形

    要求使用嵌套循环,打印以下图形:
    * * * * *

    * * * * *

    * * * * *

    for(int i = 0;i<3;i++){ //3行
        //每行5个
        for(int j = 0;j<5;j++) {
            System.out.print("* ");
        }
        System.out.println();
    }

    总结: 内层循环体执行的次数 = 外层循环次数 * 内层循环的次数
    ---------------------
    作者:吃茶去
    来源:CSDN
    原文:https://blog.csdn.net/weixin_41229776/article/details/83962282
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    【转】Jmeter 定时器之Constant Timer
    资源变现资讯、自媒体、新闻、博客小程序带pc后台管理系统
    零基础搭建智能垃圾分类小程序
    当两个对象相互引用,在调用toString方法时产生StackOverflowError
    UML图解
    Canal监听数据库表的变化
    JVM总结
    微服务总结
    Netty总结
    Mysql总结
  • 原文地址:https://www.cnblogs.com/hj558558/p/9971243.html
Copyright © 2020-2023  润新知