【Java】从头开始的Java复健day3

用的书:《Java从入门到精通》

day1(3.1-3.3): 【Java】从头开始的Java复健day1

day2(3.4-3.8): 【Java】从头开始的Java复健day2

第四章 流程控制

4.1 复合语句

复合语句为局部变量创造了一个作用域
在其中被定义的局部变量只能在该复合语句中被使用

public class Java4_1 {
    public static void main(String[] args){
        int x = 20;
        {// 这个花括号里的是复合语句
            int y = 40;
            System.out.println(y);
            int z = 245;
            boolean b;
            {// 这个花括号也里的是复合语句
                b = y > z;
                System.out.println(b);
            }
        }
        // System.out.println(y, z, b);
        // 此处yzb都不能被使用
        String word = "hello java";
        System.out.println(word);
    }
}

4.2 条件语句

if条件语句

  • if条件后如果只有一条语句可以省掉{},但是最好不要
  • if条件后如果没有语句可以省掉{}加; 也可以只跟个{}

if...else语句

可以简化为三元运算 详情见代码

if...else if语句 switch多分支语句

详情见代码

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

        int x = 45;
        int y = 12;
        if (x > y){
            System.out.println("变量x大于变量y");
        }
        if (x < y){
            System.out.println("变量x小于变量y");
        }

        int math = 95;
        int english = 56;
        if (math > 60){
            System.out.println("数学及格了");
        } else {
            System.out.println("数学没及格");
        }
        if (english > 60){
            System.out.println("英语及格了");
        } else {
            System.out.println("英语没及格");
        }

        int m;
        int n = -8;
        if (n > 0){
            m = n;
        }
        else {
            m = -n;
        }
        System.out.println(m);
        // 可以简化为
        m = n > 0?n:-n;
        System.out.println(m);

        if (math >= 60 && math < 90){
            System.out.println("数学:及格");
        }
        else if (math >= 90) {
            System.out.println("数学:优秀");
        }
        else {
            System.out.println("数学:不及格");
        }

        String user_input = "1";
        switch (user_input){
            // case后的表达式必须是整型、字符型或者字符串型
            case "1":
                System.out.println("1.取钱");
                // 没有break;就直接执行下一个case中的语句,直到遇到break;
                break;
            case "2":
                System.out.println("2.存钱");
                break;
            case "end":
                break;
            // default为可选项
            default:
                System.out.println("请输入1或者2,退出输入end");
        }
    }
}

4.3 循环语句

while循环

详情见代码

do...while循环

先执行循环体再判断while

for循环

for(表达式1;表达式2;表达式3){}

  • 表达式1:初始化变量
  • 表达式2:循环条件
  • 表达式2:修改变量操作

foreach语句

主要用在遍历数组比较方便

for(元素变量 x : 遍历对象 obj){
    引用了x的java语句;
}
public class Java4_3 {
    public static void main(String[] args){
        int i = -2;
        while (i <= -1){
            i++;
            System.out.println("run while");
        }

        do {
            i++;
            System.out.println("run do while "+ i +" times.");
        }while (i <= -3);

        // 若变量初始值为0 想循环n次 则写变量<n
        // 若变量初始值为1 想循环n次 则写变量<=n
        for (int j=1; j<=3; j++){
            System.out.println("run for "+ j +" times.");
        }

        int arr[] = {7, 10, 1};
        System.out.println("item in arr is: ");
        for (int x : arr){
            System.out.println(x);
        }
    }
}

4.5 循环控制

break

跳出当前循环体 但是只能跳出一层循环

想跳出外层循环的话

标签名:循环体{
    break 标签名;
}

continue语句

跳过本次循环接下来的语句开始下一次循环

也支持标签

标签名:循环体{
    continue 标签名;
}
public class Java4_4 {
    public static void main(String[] args){
        System.out.println("---------break---------");
        for (int i=1; i<=4; i++){
            System.out.println("running for1 in "+ i +" times");
            for (int j=1; j<=4; j++){
                System.out.println("running for2 in "+ j +" times");
                if (j >= 1){
                    // 跳出了for2但是还在进行for1
                    break;
                }
            }
        }

        System.out.println("-------跳出外层循环-------");
        // 跳出外层循环
        Loop: for (int i=1; i<=4; i++){
            System.out.println("running Loop in "+ i +" times");
            for (int j=1; j<=4; j++){
                System.out.println("running for3 in "+ j +" times");
                if (j >= 1){
                    // 跳出了for1(Loop)
                    break Loop;
                }
            }
        }

        System.out.println("--------continue--------");
        for (int i=1; i<=4; i++){
            System.out.println("running for in "+ i +" times");
            if (i > 1){
                // 跳出了for2但是还在进行for1
                continue;
            }
            System.out.println("running after if in the "+ i +"time");
        }

        System.out.println("-------跳出外层循环-------");
        // 跳出外层循环
        Loop: for (int i=1; i<=2; i++){
            System.out.println("running Loop in "+ i +" times");
            for (int j=1; j<=4; j++){
                System.out.println("running for in "+ j +" times");
                if (j > 1){
                    // 跳出了里层的for直接到Loop重新循环
                    continue Loop;
                }
                System.out.println("running after if in the "+ i +"time");
            }
        }
    }
}
posted @ 2023-08-07 22:42  ryukirin  阅读(5)  评论(0编辑  收藏  举报