JAVA流程控制

流程控制

顺序结构

什么是流程控制
  • 任何程序都是由顺序、分支、和循环组成的。
image-20220329174342517
  • **顺序结构:**按照顺序依次执行
  • **分支结构:**当满足条件时执行A不满足条件执行B
  • **循环结构:**一直执行到不满足条件为止

分支结构

单分支
  • if

当条件为true执行否则不执行

int a1 = 1;
int a2 = 1;
int a3 = 2;
if(a1==a2){//结果:true
    System.out.println("a1和a2相等");//输出a1和a2相等
}
if(a1==a3)//结果:false
{
    System.out.println("a1和a3相等");//不执行
}
多分支
  • if-else
    int a1 = 1;
    int a2 = 2;
    if(a1 == a2) {//true
        System.out.println("a1和a2相等");
    }else{
        System.out.println("a2和a2不相等");//执行
    }
    

    if - else 嵌套

    int a1 = 1;
    int a2 = 2;
    int a3 = 3;
    if(a1 == a2) {//false
        System.out.println("a1和a2相等");
    }else if (a2 == a3){//true
        System.out.println("a2和a3相等");//执行
    }else
        System.out.println("a2和a3不相等");
    

    **总:**从上往下依次判断,条件为true执行if,条件为false执行else

    image-20220329183030939
  • switch case语句(重点)
    int a = 2;
    switch(a){
        case 1:
            System.out.println("匹配1");
            break;
        case 2:
            System.out.println("匹配2");
            //没有break 匹配了会继续向下执行直到遇见break或执行到最后 才结束switch语句
        case 3:
            System.out.println("匹配3");
            break;
        default:
            System.out.println("都不匹配执行");
            break;
    

    当传入整型常量时,执行对应整型常量的case, 如果没有对应的执行default,且每一个case通道都必须要和break关键字配合使用,如果不加break会执行下一个case直到遇见break或者执行到switch语句最后。

    注:

    case后面必须跟整型常量。

    switch(整数表达式)中整数表达式的类型只能为:

    ​ byte、int、short

    ​ char

    ​ String表达式(1.7更新后)

    image-20220329213148092

循环结构

  • while()

重点:循条件、循环体

//1、计算0-100的和
        int i = 0;
        int sum = 0;
        while(i <= 100){//一直执行控制的语句,直到条件为假为止
            sum += i;
            i++;
        }
        System.out.println("0-100的和为:" + sum);//5050

//        //无限循环
//        while(true){
//            //循环体
//        }

        /**
         * break 跳出当前循环
         * continue 结束本次循环
         */
        i = 0;
        sum = 0;
        while(i<100){
            i++;
            if(i == 40){
                continue;//结束本次循环 没有0-50的和没有+40
            }
            sum += i;
            if(i == 50){
                break;//i==50时循环跳出
            }
        }
        System.out.println("0-50的算40和为:" + sum);//1235
    }

实例:

/**
     * 1、计算100以内个位数为3的和
     */
    int i = 0;
    int sum = 0;
    while(i < 100){
        if(i % 3 == 0){//个位数等于3
            sum += i;
        }
        i++;
    }
    System.out.println("100以内个位数为3的和为:" + sum);//1683
}
/**
 * 2、计算100以内偶数的和
 */
int i = 0;
int sum = 0;
while (i < 100) {
    i++;
    if(i % 2 != 0){//不为偶数结束本次循环
            continue;
    }
    sum += i;
}
System.out.println("100以内偶数的和为:" + sum);//2550
/**
 * 3、计算10!
 */
int i = 1;
long sum = 1;//乘积赋初值为1,和赋初值为0;
while(true){
    sum *= i;
    i++;
    if(i > 10){
        break;//大于10结束循环
    }
}
System.out.println("10!为:" + sum);//3628800
  • do-while()
    /**
     * do-while
     * 1、至少执行一次
     * 先执行了在判断循环条件
     * 2、注意格式:
     * do{
     *     循环体;
     * }while(循环条件); //while后面有";"
     */
    String passwd = "123456";
    do{
        System.out.println("在次输入密码:");
    }while(passwd != "123456");//注意:条件和while有区别
    System.out.println("登录成功");
    
  • for()
    /**
     * 1、for三要素:循环控制变量、循环条件、循环控制变量改变
     *
     * 2、for(循环控制变量1;循环条件2;循环控制变量改变4){循环体3;}
     * 循环控制变量:一个循环且执行一次 int i = 0;
     * 循环条件:i <= 100;
     * 循环体:sum += i;
     * 循环控制变量改变:i++
     * 从1-4依次执行,1整个循环只执行一次
     *
     * 3、自造死循环
     * for(;;){;}
     *
     * 4、
     * int i = 0;
     * int sum = 0;
     * for(;i <= 100;){                   while(i <= 100){
     *     sum + = i;           相等           sum += i;
     *     i++;                 <==>          i++;
     * }                                  }
     */
    //计算0-100的和 ,观察和while的区别,及演变过程
    int sum = 0;
    for(int i = 0;i <= 100;i++){
        sum += i;
    }
    System.out.println("0-100的和为:" + sum);
    
  • for循环的嵌套实例:

    /**
     * 99乘法表:
     *内循环的基数代表了行,
     *外循环变量的基数代表了列
     *
     * 外循环执行一次,内循环执行一完!//其实可以直接理解,反正需要一条语句执行完了之后才能执行下一条语句
     * 外层循环控制行数,内层循环控制列数
     */
    
    for (int i = 1; i <= 9; i++) {//外层循环控制行数
        for (int j = 1; j <= i; j++) {//内层循环控制列数
            System.out.print(j + "*" + i + "=" + i * j + "  ");
        }
        System.out.println();
    }
    
    /*结果
    1*1=1  
    1*2=2  2*2=4  
    1*3=3  2*3=6  3*3=9  
    1*4=4  2*4=8  3*4=12  4*4=16  
    1*5=5  2*5=10  3*5=15  4*5=20  5*5=25  
    1*6=6  2*6=12  3*6=18  4*6=24  5*6=30  6*6=36  
    1*7=7  2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49  
    1*8=8  2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64  
    1*9=9  2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81 
    */
    
增强for()

这个涉及到和数组和集合的组合使用就后面遇见了在总结。

  • 总:

    “”当”型循环采用while
    “直到”型循环采用do-while
    “固定次数循环”采用for

    循环主要考虑的三个部分:

    循环变量的初始值

    循环条件

    循环变量的改变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值