java程序结构

1.顺序结构

单线程场景下是顺序执行

2.分支结构

(1)if分支结构

if(布尔表达式){

//满足布尔表达式为true时执行的代码块

}

if……else分支

if(布尔表达式){

  //满足布尔表达式为true时执行的代码块

}else{

   //不满足条件时执行的语句

}

        int num=10;
        if(num%2==0){
            System.out.println(num+"是偶数");

        }else{
            System.out.println(num+"不是偶数");
        }

if(表达式1){

  //满足表达式1时执行的语句

}else  if(表达式2){

  //满足表达式2时执行的语句

}else if(表达式n){
  ……

}else{

  //上述所有条件都不满足时执行的代码

}

        int sum=-10;
        if(sum<0){
            System.out.println(sum+"是负数");
        }
        else if(sum==0){
            System.out.println(sum+"是0");
        }
        else{
            System.out.println(sum+"是正数");
        }

if(布尔表达式1){
  //满足1时执行的代码

}

if(布尔表达式2){

  //满足2时执行的代码

}else{

}

        int i=99;
        int count=0;
        if(i%10==9){
            count++;
        }
        if(i/10==9){
            count++;
        }
        System.out.println(count);

分号问题

        int x=1;
        if(x==0);{
            System.out.println("l");
        }

编译器以分号作为分隔依据

        //悬垂分割
        int j=10;
        int k=20;
        if(j!=10)
            if(k!=20)
                System.out.println("a");
        else
                System.out.println("b");

if-else遵循就近匹配原则

嵌套分支

        //判断闰年
        int year=1900;
        //1.如果能整除100,判断世纪闰年,否则判断普通闰年
        if(year%100==0){
            if(year%400==0){
                System.out.println(year+"是闰年");
            }
            else{
                System.out.println(year+"不是闰年");
            }
        }
        else{
            if(year%4==0){
                System.out.println(year+"是闰年");
            }
            else{
                System.out.println(year+"不是闰年");
            }
        }

switch分支:表示多重选择

switch(int/char/String/Enum表达式){

  case 常量值1:

           语句1;

           [break]//可以省略

case 常量值2:

           语句2;

           [break]//可以省略

case 常量值n:

           语句n;

           [break]//可以省略

default:{

        //上述条件都不满足时执行的语句

   }

}

        int i=4;
        switch (i){
            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("输入有误");
            }
        }

swtich语句的几个注意点:

1.switch表达式不支持浮点型

2.switch表达式不支持复杂条件,计算出来的结果必须是一个确定数字,不能表示区间

switch实现的,使用if语句一定可以实现,反之,if可以实现的switch不一定可以

3.循环结构

while分支

while(循环条件){

  //循环语句;

}//程序卡死,大概率都是死循环

        public static void main(String[] args) {
        int a=1;
        int num=0;
        while(a<=100){
            num+=a;
            a++;

        }
        System.out.println(num);

        int i=1;
        int j=1;
        while(i<=5){
            j*=i;
            i++;
        }
        System.out.println(j);

        //实现1!+2!+……+5!(循环嵌套)
        int x=0;
        int y=1;
        while(y<=5){
            int tmp=1;
            int rest=1;
            while(tmp<=y){
                rest*=tmp;
                tmp++;
            }
            x+=rest;
            y++;
        }
        System.out.println(x);


    }

 break:执行到break语句,跳出当前循环;

continue:执行到continue语句,继续下一次循环,本次循环的剩余代码不再执行;

使用break label可以跳到对应的标签位置;

        public static void main(String[] args) {
        //100-200第一个3的倍数
        int num=100;
        while(num<=200){
            if(num%3==0){
                System.out.println(num);
                break;
            }
            num++;
        }

        //100-200所有3的倍数
        int tmp=100;
        while(tmp<=200){
            if(tmp%3!=0){
                tmp++;
                continue;
            }
            System.out.println(tmp);
            tmp++;
        }
        //break标签
        int a=1;
        outter:
        while(a<=100){
            int b=1;
            while(b<=100){
                if(b%3==0){
                    System.out.println(b+" ");
                    break outter;
                }
                b++;
            }
            a++;
        }
        System.out.println("两个循环都执行完了");
    }

for循环

for(初始化表达式1;布尔表达式2;表达式3){

     循环体代码4;

}

        public static void main(String[] args) {
        //1.打印1-10的数字
        for(int a=1;a<=10;a++){
            System.out.println(a);
        }
        //2.计算1+……100的和
        int sum=0;
        for(int b=1;b<=100;b++){
            sum+=b;

        }
        System.out.println(sum);

        //3.计算1!+2!+……+5!

        int k=0;
        for(int i=1;i<=5;i++){
            int tmp=1;
            for(int j=1;j<=i;j++){
                tmp*=j;

            }
            k+=tmp;
        }
        System.out.println(k);
    }

总结:

1.while用于明确知道终止条件,不知道循环次数,也不关心循环次数

2.明确知道循环次数,可以使用for循环

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小李(写代码版)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值