Java SE-04(选择结构、循环结构)

代码块和作用域

代码块:被大括号包括在内的代码。

作用域:变量的使用范围,尽限于其定义时所处的代码块,一旦超出其对应的代码块,就相当于没有这个变量。

选择结构

if语句

if(条件判断) {

        判成功执行的代码;

}

if会进行判断,只有判断成功才会执行紧接着的语句或者代码段,否则会直接跳过。如果我们想要在条件为假的时候执行其他的代码,我们需要在后面添加else语句。

if(条件判断){

        判断成功执行的代码;

}else{

        判断不成功执行的代码;

}

else if语句就像是分支一样,根据不同情况来选择要执行的语句。

public class Main {
    public static void main(String[] args) {
        int a = 1;
        if(a<1){
            System.out.println("a小于1");
        }else if(a==1){
            System.out.println("a等于1");
        }else{
            System.out.println("a大于1");
        }
    }
}

同时,if语句支持嵌套使用,判断是否满足多个条件。或者也可以与其他流程控制语句进行混合嵌套使用。

switch语句

switch语句可以精确匹配某个值,但是他不能进行范围的判断。除了精确匹配之外,其他的情况我们可以使用default语句。

switch(目标){

        case 匹配值:
                代码;

                break;

        default:

                其他情况下执行的代码;

}

public class Main {
    public static void main(String[] args) {
        char c = 'A';
        switch (c){
            case 'A':
                System.out.println("您的成绩等级是A");
                break;//如果执行完代码不执行break,会顺序执行下面的case的代码
            case 'B':
                System.out.println("您的成绩等级是B");
                break;
            case 'C':
                System.out.println("您的成绩等级是C");
                break;
            default:
                System.out.println("您的成绩无效");
        }

    }
}

注意:如果在执行完case的代码后,不加break语句跳出switch语句,那么程序会继续依次执行下面的case代码,直到碰到break语句或者执行完毕。

循环结构

for语句

for(表达式1,表达式2,表达式3){

        循环体代码;

}

表达式1:在循环开始时仅执行一次。

表达式2:在每次循环开始前执行一次,要求为判断语句,用于判断是否可以结束循环,若结果为真,则继续循环,否则则结束循环。

表达式3:每次循环完成后执行一次。

循环体:每次循环都会执行一次循环体。

public class Main {
    public static void main(String[] args) {
        for(int i = 0;i<10;i++){
            System.out.println("我要学Java!");
        }
    }
}

注意:这里的i仅仅是for循环语句中创建的变量,所以说其作用域被限制在循环体内,一旦离开循环体,i无法再被使用。

for循环同样支持与其他语句进行嵌套使用。

public class Main {
    public static void main(String[] args) {
        for(int i = 0;i<3;i++){
            for(int j = 0;j<3;j++){
                for(int k = 0;k<3;k++){
                    System.out.print('*');
                }
                System.out.println('\n');
            }
        }
    }
}

会循环输出9次"***"。

实际上for循环的表达式不一定需要编写,甚至可以三个都不写。

for(;;)会无限循环。

没有表达式2,整个for循环就没有结束判断条件,默认会判断为真,需避免无限循环(会消耗CPU资源)。

如果我们需提前种植或者加速循环的进行,我们需要使用continue和break。

contine语句可以用来跳过本次循环,直接开启下一轮循环。这里的跳过是指,循环体中,无论后面有没有需要执行的代码,都不执行。

public class Main {
    public static void main(String[] args) {
        for(int i = 0;i<10;i++){
           if(i%2==1){
               continue;
           }
           System.out.println(i);
        }
    }
}

Java SE-04(选择结构、循环结构)_第1张图片

break语句用来直接结束循环。

这里的continue的生效对象并不是外层的for,而是离的最近的for循环,break同样如此。

如果一个代码块存在多个循环,我们可以对当前代码块进行标记,从而使用break跳出整个代码块

public class Main {
    public static void main(String[] args) {
        out:{
            for (int i = 0;i<10;i++){
                if(i%2==1){
                    System.out.println(i);
                    break out;//执行break时会跳出out这个代码块,而不是for循环
                }
            }
        }
        System.out.println("系统出错了!");
    }
}

 while语句

while(循环条件){

        循环体代码;

}

相比于for循环,while循环更多在不明确具体的结束时机的情况下使用,for多用于明确循环的情况。

public class Main {
    public static void main(String[] args) {
        int i = 99;
        while(i>0){
            System.out.println(i);
            i /= 2;
        }
    }
}

 Java SE-04(选择结构、循环结构)_第2张图片

do-while语句

do-while语句是不论是否满足循环条件,都先执行一次循环体的代码,再做判断,如果判断成功,就进行下一次的循环,否则结束。

public class Main {
    public static void main(String[] args) {
        int i = 99;
        do {
            System.out.println(i);
            i /= 2;
        }while(i>100);
    }
}

 Java SE-04(选择结构、循环结构)_第3张图片

你可能感兴趣的:(JAVA,SE的学习之旅,java,开发语言)