为了账号安全,请及时绑定邮箱和手机立即绑定

Java 流程控制

标签:
Java

在这里插入图片描述


前言

任何一种编程语言,都会有两种最基本的控制结构,分支结构(选择结构)和 循环结构 ,其中分支结构根据所给条件选择性执行某段代码,循环结构是根据循环条件重复执行某一段代码,在Java中,分支结构有两种,if 和 switch 两种,循环结构有三种,while、do while、for。在JDK5之后还提供了一种foreach循环结构,能以更简单的方式遍历集合或者数组元素。此外,Java还提供了 break 和 continue 来控制循环结构。


顺序结构

前方文章已经讲过顺序结构,依照程序从上到下一次逐行执行,按照这个流程执行就是顺序结构,在此就不多做解释。


分支结构(选择结构)

分支结构会根据条件,执行整个 { } 里的内容.。(其实也可以不写{ } ,但是不推荐,因为只能执行条件之后的一句)

if 语句

第一种:if语句

public class Main {

    public static void main(String[] args) {
        int a = 6;
        int b = 3;

        if (a > b) {
            System.out.println("是的,a大于b");
        }
    }
}

if…else 语句

第二种:if…else 语句

public class Main {

    public static void main(String[] args) {

        int a = 6;
        int b = 3;

        if (a > b) {
            System.out.println("是的,a大于b");
        }else{
            System.out.println("其实 a 小于 b");//这是不执行的,这里是个例子
        }
    }
}

if…else if 语句

第三种:if…else if

public class Main {

    public static void main(String[] args) {

        int a = 6;
        int b = 3;

        if (a > b) {
            System.out.println("是的,a大于b");
        } else if (a < b) {
            System.out.println("其实 a 小于 b");//这是不执行的,这里是个例子
        } else {
            System.out.println("其实 a 不大于 b 也不小于 b ,而是相等的");//这是不执行的,这里是个例子
        }
    }
}

第四种:switch,一般使用情况如下。当执行选择时,case 后是条件,有合适number条件后,执行case之后,到下一个break之间的代码,可以不写break,但是会穿透,继续执行。另外,default是没有符合条件时候执行的,可以理解为“其它情况”。

public class Main {

    public static void main(String[] args) {

        int number = 8;

        switch (number) {
            case 5:
                System.out.println("数字是5");
                break;
            case 6:
                System.out.println("数字是6");
                break;
            case 7:
                System.out.println("数字是7");
                break;
            case 8:
                System.out.println("对应执行这里的代码");
                System.out.println("对应执行这里的代码");
                break;
            case 9:
                System.out.println("数字是9");
                break;
            default:
                System.out.println("没有合适的条件");
        }
    }
}

也可以用于String类型的数据

public class Main {

    public static void main(String[] args) {

        String name = "第三女神";

        switch (name) {
            case "两行代码":
                System.out.println("两行代码");
                break;
            case "第三女神":
                System.out.println("第三女神");
                System.out.println("对应执行这里的代码");
                System.out.println("对应执行这里的代码");
                break;
            case "程序员":
                System.out.println("程序员");
                break;
            case "设计师":
                break;
            default:
                System.out.println("以上都不是");
        }
    }
}

也可以用于char类型

public class Main {

    public static void main(String[] args) {

        char name = 'm';

        switch (name) {
            case 'a':
                System.out.println("a");
                break;
            case 'c':
                System.out.println("c");
                break;
            case 'd':
                System.out.println("d");
                break;
            case 'e':
                break;
            default:
                System.out.println("对应执行这里的代码");
                System.out.println("对应执行这里的代码");
        }
    }
}


循环结构

循环结构是在满足给定条件下,反复执行某一行或者某一段代码,这就是循环结构,可以通过控制条件来实现循环多少次,又或者是满足某种情况后跳出循环。

while语句

while语句:每次循环都进行a++(a的自身+1),直到a大于等于5的时候会跳出循环,这是根据循环条件来控制的,while循环结构的特点是

public class Main {

    public static void main(String[] args) {

        int a = 0;

        while (a <5) {
            a++;
            System.out.println("这一段被多次执行");
        }
    }
}

将输出以下结果:
在这里插入图片描述
当使用While循环时,一定要保证循环条件能够变成false,这样才能够退出循环,否则,将会成为死循环,如上,将a++那一行去掉,就会变成死循环,条件永远满足a<5。

do while 语句

do while语句:与while有不同之处,while循环语句是循环之前,先进行一次条件判断,而后符合条件才会继续执行,do while 是先进入循环体,之后再判断条件是否满足,满足则继续循环,否则终止循环,继续向下执行。

public class Main {

    public static void main(String[] args) {

        int a = 11;
        do {
            System.out.println("我被执行了!");
        } while (a < 10);
    }
}

将输出以下结果:
在这里插入图片描述
由此可见,while是先判断再执行,do while是先执行再判断,如上do while,a是大于10的,但还是先进入了循环体先执行了一次!

for 循环语句

for循环是更加简洁的循环语句,在一般情况下,for循环可以代替while循环语句和do while循环语句(我大部分都使用for循环语句,while和do while不能说没有,但是很少使用)

基本语句如下:
在第五行括号中,有两个分号分成了三部分,
第一部分:指的是初始化的一个变量
第二部分:指的是循环条件
第三部分:指的是每次循环对变量值的操作

for循环语句同时也是可以在循环体内修改变量值,但是我不建议这么做(你能熟练运用也好,刚开始我不建议你那样写)

public class Main {

    public static void main(String[] args) {

        for (int i = 0; i < 10; i++) {
            System.out.println("循环index:" + i);
        }

    }
}

将输出以下结果:
在这里插入图片描述

continue 和 break

continue:结束本次循环执行下一次循环
break:跳出循环

continue使用方法如下,我在for循环体中加入了一个条件判断,当符合条件时候,就会结束本次循环,继续执行下一次循环:

public class Main {

    public static void main(String[] args) {

        for (int i = 0; i < 10; i++) {
            if (i == 5) {
                continue;
            }
            System.out.println("循环index:" + i);
        }

    }
}

将输出以下结果:(没有输出5)
在这里插入图片描述

break使用基本如下:在以上代码稍作修改

public class Main {

    public static void main(String[] args) {

        for (int i = 0; i < 10; i++) {
            if (i == 5) {
                break;
            }
            System.out.println("循环index:" + i);
        }

    }
}

将输出以下结果:(在满足i等于5的时候会跳出循环)
在这里插入图片描述

也可以用return进行循环的结束:(意味着程序结束,第12行代码根本不会执行)

public class Main {

    public static void main(String[] args) {

        for (int i = 0; i < 10; i++) {
            if (i == 5) {
                return;
            }
            System.out.println("循环index:" + i);
        }

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

    }
}

将会输出以下结果:
在这里插入图片描述


综合使用

for循环中可以加入if判断,同理if也能嵌套for循环,可以利用这三种结构各自的特点,来进行综合使用,达到更佳的效果。下面就是一个实用案例!

public class Main {

    public static void main(String[] args) {

        for (int i = 0; i < 10; i++) {
            if (i % 2 == 0) {
                System.out.println("偶数" + i);
            } else {
                System.out.println("奇数" + i);
            }
        }

    }
}

程序将输出以下结果:
在这里插入图片描述

也可以利用双重for循环轻易地输出一个乘法口诀表
\t是制表符,System.out.print 和 System.out.println 区别是一个是不换行输出,一个是换行输出

public class Main {

    public static void main(String[] args) {

        for (int i = 1; i < 10; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(j + "*" + i + "=" + j * i + "\t");
            }
            System.out.println();
        }

    }
}

将输出以下结果
在这里插入图片描述

下一篇

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消