Java学习笔记4-控制执行流程

 

控制语句:if...else...、if...else if...else...、while()、do...while()...、for循环;

 

Java 中不允许把一个数字作为布尔值使用,比如 a = 3 时 if(a) 需要写成 if(a != 0) 的形式;

 

while 和 do while 的唯一区别就是 do while 中的语句至少会执行一次;

 

在 for 循环的控制表达式的初始化和步进控制部分,可以使用一系列由逗号分隔的语句,这些语句都会被独立执行;

 

foreach 语法:for(主类型 x : 数组) { }

 

print() 表示输出后不换行,println() 表示输出后换行;

 

跳出当前处理:break、return、continue 三种方式;

 

无穷循环:while(true)、for(;;)

 

对于 while 循环的控制:

  1. 一般的 continue 会退回最内层循环的开头,并继续执行;
  2. 带标签的 continue 会到达标签的位置,并重新进入紧急在那个标签后面的循环;
  3. 一般的 break 会中断并跳出当前循环;
  4. 带标签的 break 会中断并跳出标签所指的循环;

 

Java 中使用标签的唯一理由就是存在循环嵌套时,从多次嵌套中 break 或 continue,否则尽可能的不要使用标签;

 

下面是对上述逻辑的实例:

public class TestClass {
    public static void main(String[] str) {
        TestWhile.testIf(11);
        TestWhile.testIfElse(10);
        TestWhile.testWhile(11);
        TestWhile.testDoWhile(10);
        TestWhile.testFor(11);
        int[] iNum = {1,2,3,4};
        TestWhile.testForeach(iNum);
        TestWhile.testBreak(10); //break后可以继续走到for循环
        TestWhile.testBreak(20); //return后不会走到for循环
    }
}

class TestWhile {
    /**
     * if...else控制语句
     * @param iNum 是控制元素
     */
    public static void testIf(int iNum) {
        if(iNum > 10 ) {
            System.out.println("If:The number is big.");
        } else {
            System.out.println("If:The number is little");
        }
    }

    /**
     * if ...else if...else...控制语句
     * @param iNum 是控制元素
     */
    public static void testIfElse(int iNum) {
        if(iNum > 10 ) {
            System.out.println("IfElse:The number is big.");
        } else if (iNum == 10){
            System.out.println("IfElse:The number is 10");
        } else {
            System.out.println("IfElse:The number is little");
        }
    }

    /**
     * while控制语句
     * @param iNum 是控制元素
     */
    public static void testWhile(int iNum) {
        while (iNum > 10) {
            System.out.println("While:The number is big.");
            iNum--;
        }
    }

    /**
     * do...while...控制语句,相对while来说,dowhile会至少执行一次
     * @param iNum 是控制元素
     */
    public static void testDoWhile(int iNum) {
        do {
            System.out.println("DoWhile:The number is big.");
            iNum--;
        } while (iNum > 10);
    }

    /**
     * for循环
     * @param iNum 是控制元素
     */
    public static void testFor(int iNum) {
        for (int i = 0; i < iNum; i++) {
            System.out.println("For:The number " + i + " is little.");
        }
    }

    /**
     * foreach循环,比for看起来更简洁
     * @param iNum 是控制元素
     */
    public static void testForeach(int[] iNum) {
        for(int i:iNum) {
            System.out.print("The number is " + i);//输出后不换行
            System.out.println();//仅输出换行
        }
    }

    /**
     * break表示跳出当前循环,并继续后续语句执行
     * return也是跳出,但是带有返回值,并且不会继续后续执行语句
     * continue是忽略后续流程重新开始新的循环
     * @param iNum 是控制元素
     */
    public static void testBreak(int iNum) {
        switch (iNum) {
            case 10:
                break;
            case 20:
                return;
            default:
                break;
        }

        for(int i= 0; i < iNum; i++) {
            if (5 != i) {
                continue;
            }
            //只有i=5的时候才会走到这个输出语句
            System.out.println("The iNum is " + iNum + " and find 5");
        }
    }

    /**
     * 这是一个while无穷循环,慎用
     */
    public static void testWhileForEver() {
        while (true) {
            //break;
        }
    }

    /**
     * 这是一个for无穷循环,慎用
     */
    public static void testForEver() {
        for(;;) {
            //break;
        }
    }

    /**
     * 标签的使用
     * @param iNum 是控制元素
     */
    public static void testCycle(int iNum) {
        test1:
        while(100 < iNum) {
            test:
            for (int i = 0; i < iNum; i++) {
                if (10 != i) {
                    iNum--;
                    continue test;
                } else if (10 == i) {
                    break test1;
                }
            }
        }
    }

    public static void testInt(int iNum) {
        //while (iNum) {

        //}
    }
}

 

输出结果:

If:The number is big.

IfElse:The number is 10

While:The number is big.

DoWhile:The number is big.

For:The number 0 is little.

For:The number 1 is little.

For:The number 2 is little.

For:The number 3 is little.

For:The number 4 is little.

For:The number 5 is little.

For:The number 6 is little.

For:The number 7 is little.

For:The number 8 is little.

For:The number 9 is little.

For:The number 10 is little.

The number is 1

The number is 2

The number is 3

The number is 4

The iNum is 10 and find 5

 

switch 的选择因子必须是 int 或 char 那样的整数值,后续 switch 和 enum 协调工作时可以减弱这种限制。如果使用 int 或 char 类型,大部分编辑器会报错:

 

 

 

 本文作者: sylan215

 本文地址: http://www.sylan215.com/

 版权声明: 本文首发于公众号「sylan215」,可以随意转载,但必须在明确位置注明出处!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值