java基础-控制语句

1.条件语句if

public class HelloWorld {
    public static void main(String[] args) {
        boolean b = false;

        // 如果有多个表达式,必须用大括弧包括起来
        if (b) {
            System.out.println("yes1");
            System.out.println("yes2");
            System.out.println("yes3");
        }

        // 否则表达式2 3 无论b是否为true都会执行
        if (b)
            System.out.println("yes1");
        System.out.println("yes2");
        System.out.println("yes3");

        // 如果只有一个表达式可以不用写括弧,看上去会简约一些
        if (b) {
            System.out.println("yes1");
        }

        if (b)
            System.out.println("yes1");
    }
}

 

public class HelloWorld {
    public static void main(String[] args) {
        int day = 5;
        
        // 如果只使用 if,会执行7次判断
        if (day == 1)
            System.out.println("星期一");
        if (day == 2)
            System.out.println("星期二");
        if (day == 3)
            System.out.println("星期三");
        if (day == 4)
            System.out.println("星期四");
        if (day == 5)
            System.out.println("星期五");
        if (day == 6)
            System.out.println("星期六");
        if (day == 7)
            System.out.println("星期天");

        // 如果使用else if, 一旦判断成立, 判断就不会执行了,节约了运算资源
        if (day == 1)
            System.out.println("星期一");
        else if (day == 2)
            System.out.println("星期二");
        else if (day == 3)
            System.out.println("星期三");
        else if (day == 4)
            System.out.println("星期四");
        else if (day == 5)
            System.out.println("星期五");
        else if (day == 6)
            System.out.println("星期六");
        else if (day == 7)
            System.out.println("星期天");
        else
            System.out.println("这个是什么鬼?");
    }
}

 

2.条件语句switch

switch 语句相当于 if else

public class HelloWorld {
    public static void main(String[] args) {
        int day = 5;

        // 如果使用switch相当于else if
        switch (day) {
        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("这个是什么鬼?");
        }
    }
}

 

3.循环语句while和do-while

public class HelloWorld {
    public static void main(String[] args) {

        // 打印0到4
        int i = 0;
        while (i < 5) {
            System.out.println("i" + i + "=" + i);
            i++;
        }

        // 打印0到4
        // 与while的区别是,无论是否成立,先执行一次,再进行判断
        int j = 0;
        do {
            System.out.println("j" + j + "=" + j);
            j++;
        } while (j < 5);
    }
}

 

4.循环语句for

for循环,和while一样,只是表达方式不一样

public class HelloWorld {
    public static void main(String[] args) {
        int i = 0;

        // 使用for打印0到4
        for (int j = 0; j < 5; j++) {
            System.out.println("for循环输出的 " + j);
        }
    }
}

 

5.continue

continue语句的作用是跳过本次循环体中余下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为仅结束本次循环。

public class HelloWorld {
    public static void main(String[] args) {

        // 打印单数
        for (int j = 0; j < 10; j++) {
            if (0 == j % 2)
                continue; // 如果是双数,后面的代码不执行,直接进行下一次循环

            System.out.println(j);
        }
    }
}

 

6.break

用break语句可以使流程跳出switch语句体,也可以用break语句在循环结构终止本层循环体,从而提前结束本层循环。

public class HelloWorld {
    public static void main(String[] args) {

        // 打印单数
        for (int j = 0; j < 10; j++) {
            if (0 == j % 2)
                break; // 如果是双数,直接结束当前for循环

            System.out.println(j);
        }
    }
}

 

7.结束外部循环

1.使用boolean变量结束外部循环

public class HelloWorld {
    public static void main(String[] args) {
        boolean breakout = false; // 是否终止外部循环的标记
        for (int i = 1; i < 10; i++) {
            for (int j = 1; j < 10; j++) {
                System.out.println("i=" + i + " : j=" + j + " breakout=" + breakout);
                if (0 == j % 2) {
                    breakout = true; // 终止外部循环的标记设置为true
                    break;
                }
            }
            if (breakout) // 判断是否终止外部循环
                break;
        }
    }
}

 

2.使用标签结束外部循环

public class HelloWorld {
    public static void main(String[] args) {

        // 打印单数
        outloop: // outloop这个标示是可以自定义的比如outloop1,ol2,out5
        for (int i = 1; i < 10; i++) {

            for (int j = 1; j < 10; j++) {
                System.out.println("i=" + i + " : j=" + j);
                if (0 == j % 2)
                    break outloop; // 如果是双数,结束外部循环
            }
        }
    }
}

 

8.练习

1.小学算术题

public class HelloWorld {
    /**
     * 提示使用多层循环嵌套解决
     *  口 + 口 = 8
     *  +    + 
     *  口 - 口 = 6
     *  =    = (往下等于)
     *  14   10
     * 
     * 求4个数字分别多少?
     */
    public static void main(String[] args) {

        // 已知范围 所有数相加不大于14
        for (int a = 0; a <= 14; a++) { // 设立数字a,假设是左上角
            int b = 8 - a; // 那么b 就是右上角
            int c = 14 - a; // c 就是左下角
            int d = 10 - b; // d 就是右下角(求 d 的其中一个方式)
            if (d == c - 6) { // 求 d 的另一个方式(两种都满足中和出最终值)
                System.out.println("a=" + a + " b=" + b + " c=" + c + " d=" + d);
            }
        }
    }
}

 

2.九九乘法表

public class HelloWorld {
    public static void main(String[] args) {

        // while实现九九乘法表
        System.out.println("==================while实现九九乘法表==================");
        int i = 0;
        while (i < 9) {
            i++;
            int j = 0;
            while (j < i) {
                j++;
                System.out.print(j + "*" + i + "=" + i * j);
                System.out.print("\t");
            }
            System.out.println();
        }

        // for实现九九乘法表
        System.out.println("==================for实现九九乘法表==================");
        for (int x = 1; x <= 9; x++) {
            for (int y = 1; y <= x; y++) {
                System.out.print(y + "*" + x + "=" + x * y);
                System.out.print("\t");
            }
            System.out.println();
        }
    }
}

 

3.水仙花数

水仙花数定义: 1. 一定是3位数 2. 每一位的立方,加起来恰好是这个数本身,比如153=1*1*1+5*5*5+3*3*3 寻找所有的水仙花数

public class HelloWorld {
    public static void main(String[] args) {
     outloop:
for (int baiwei = 1; baiwei <= 9; baiwei++) { for (int shiwei = 0; shiwei <= 9; shiwei++) { for (int gewei = 0; gewei <= 9; gewei++) { int num = baiwei * 100 + shiwei * 10 + gewei * 1; int opNum = gewei * gewei * gewei + shiwei * shiwei * shiwei + baiwei * baiwei * baiwei; if (num == opNum) System.out.println(num + "是水仙花数");
            if (baiwei == 9 && shiwei == 9 && gewei == 9) break outloop; } } } } }

 

posted @ 2020-05-03 03:19  杵臼  阅读(148)  评论(0编辑  收藏  举报