展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

条件语句

  • while 循环
//boolean表达式为true则会⼀直执⾏
while(布尔表达式){
   //循环执⾏的内容
}

# 如下是死循环:
    public static void test1(){
        int i = 10;
        while (i<20){

            System.out.println("我是循环被执行了i="+i);
            i++;  // i = i+1;
        }
        System.out.println("循环结束,i="+i);
    }
  • do while 循环
do{
   //循环执⾏的内容
}while(布尔表达式);

# 如下是死循环
    public static void test2(){
        int i = 20;
        do{
            System.out.println(" do while 我是循环被执行了i="+i);
            i++;
        }while (i<20);
        System.out.println("do while 循环结束,i="+i);
    }
  • while和do while的区别
while的话⼀定需要满⾜条件才会执⾏
do while的话,会先执⾏⼀次循环内容,再判断是否继续执⾏
  • 普通for循环
for(初始化; 布尔表达式; 更新变化条件){
   //循环执⾏的内容
}

//例⼦
for(int i=0; i<20;i++){
   System.out.println(i);
}

# 循环过程如下:
* “初始化” ⼀般是初始化⼀个变量,只执⾏⼀次,也可以是空语句
* 接着判断 “布尔表达式”,如果为true,则执⾏循环内容;为false则终⽌循环
* “更新变化条件” 执⾏循环内容后,更新循环控制变量
* 再次检测 “布尔表达式”,如果为true,则执⾏循环内容;为false则终⽌循环
  • 增强for循环
for(声明变量类型:被遍历的集合或者数组){
   //循环内容
}

//例⼦
    public static void test2(){
        String [] array = {"monkey","dog","cat","bird","tiger"};
        for(String str : array ){
            System.out.println("动物类型="+str);
        }
    }
  • 循环退出
break 关键字
跳出当前层的循环体,执⾏循环体下⾯的语句

# 如下
    public static void test1(){
        String [] array =  {"monkey","dog","cat","bird","tiger","fish"};
        for(String animal : array){
            System.out.println("当前的动物是="+animal);
            //字符串比较是否相等,不能用 ==,应该是用 equal方法
            if("cat".equals(animal)){
                System.out.println("发现cat了");
                break;
            }
        }
        System.out.println("循环结束");
    }

# 控制台
当前的动物是=monkey
当前的动物是=dog
当前的动物是=cat
发现cat了
循环结束
  • 循环跳过
continue 关键字
跳过当前循环,执⾏下⼀次循环, (忽略当前循环内容,直接执⾏下⼀次)

# 如下
    public static void test2(){
        String [] array =  {"monkey","dog","cat","bird","tiger","fish"};
        for (String animal:array){
            if("cat".equals(animal)){
                System.out.println("发现cat了");
                continue;
            }
            System.out.println("当前的动物是="+animal);
        }
        System.out.println("循环结束");
    }

当前的动物是=monkey
当前的动物是=dog
发现cat了
当前的动物是=bird
当前的动物是=tiger
当前的动物是=fish
循环结束
  • if 语句
//如果布尔表达式为true,则执⾏花括号⾥⾯的内容,如果语句体只有⼀句,则花括号可以不写,但是推荐写
if(布尔表达式){
   //语句体
}

# 如下
    int age =10;
    if(age<20){
        System.out.println("年龄小于20岁");
    }
  • if else 语句的使⽤,如果if条件为false,则else⾥⾯的内容会被执⾏
if(布尔表达式){
   //语句体
}else{
   //语句体
}

# 如下
    int age =20;
    if(age<20){
        System.out.println("年龄小于20岁");
    } else {
        System.out.println("年龄大于或者等于20岁");
    }
  • if else if else 语句的使⽤,⽤于判断多个条件
if(布尔表达式1){
   //语句体
}else if(布尔表达式2){
   //语句体
}else if(布尔表达式3){
   //语句体
}else if(布尔表达式4){
   //语句体
}else{
   //语句体
}

# 如下
    int age = 45;
    if(age<10){
        System.out.println("年龄小于10岁");
    } else if(age>=10 && age <=20){
        System.out.println("年龄大于等于10岁,小于等于20岁");
    } else if(age>=21 && age<=30){
        System.out.println("年龄大于等于21岁,小于等于30岁");
    }else {
        System.out.println("年龄大于31岁");
    }
  • if语句注意点
if 语句⾄多有 1 个 else 语句,可以0个else,且else 语句在最后,类似前⾯的都不成功,最后⼀定执⾏
if 语句可以有多个 else if 语句,它们必须在 else 语句之前
如果其中⼀个 else if 语句为 true,其他的 else if 以及 else 语句都将跳过执⾏
  • if else 嵌套
可以在if else⾥⾯嵌套多层if else

# 如下
int age = 30;
if(age > 10){
    if(age > 18){
        // 语句体
        if(age>25){
            // 语句体
        }else{
            // 语句体
        }
    }else{
        // 语句体
    }
}else{
    // 语句体
}
  • 条件语句 switch case
switch(表达式){
   case 表达式常量1:语句1;
   break;
   case 表达式常量2:语句2;
   break;
   // ......
   //可以有任意数量的case语句
   case 表达式常量n:语句n;
   break;
   default : //可选
   //语句
}

# 如下
    public static void main(String [] args){
        int day = 10;
        String content = "";
        switch (day){
            case 1: content="周一";
                break;
            case 2: content="周二";
                break;
            case 3: content="周三";
                break;
            case 4: content="周四";
                break;
            case 5: content="周五";
                break;
            default:
                content="无效数字";
        }
        System.out.println(content);
    }
  • Switch语句注意点
Switch和if语句都是Java的选择语句,这两种都是允许在程序运⾏时控制程序的执⾏过程
switch 语句可以拥有多个 case 语句,每个 case 后⾯跟⼀个常量和冒号
default就是如果没有符合的case 就执⾏它,default并不是必须的
当遇到break语句时,switch语句终⽌。程序跳转到switch语句后⾯的语句执⾏
case语句不必须包含break语句, 没有break语句,程序会执⾏下⼀条case语句,直到出现break语句为⽌
jdk7之前 switch的case语句⽀持int,short,byte,char类型的值,jdk7后⽀持String类型
  • static关键字
static 修饰的⽅法或变量,优先于对象执⾏,所以内存有会现有 static修饰的内容,后有对象的内容
可以⽤来修饰类的成员⽅法、类的成员变量,还可以编写static静态代码块
修饰变量就是类变量,修饰⽅法就是类⽅法
总结: 类变量或者类⽅法,可以直接通过类名.⽅法名或者变量名进⾏调⽤,不⽤经过对象

# 如下
public class Student{
   static int age;
   static String name;
   // 类方法
   public static void sleep(){
   } 
}
  • static变量也称作静态变量
和⾮静态变量的区别是,静态变量被所有的对象所共享,在内存中只有⼀份,它当且仅当在类初次加载时会被初始化。⾮静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有d 的副本互不影响

static成员变量的初始化顺序按照定义的顺序进⾏初始化
  • static⽅法也称作静态⽅法
不依赖于任何对象就可以进⾏访问,类名.⽅法名
不能访问类的⾮静态成员变量和⾮静态成员⽅法

注意事项:
静态⽅法不能直接访问⾮静态变量
静态⽅法当中不能使⽤this
核⼼:⼀个类⾥⾯ static修饰的不能访问⾮static修饰的成员或者⽅法,⽽⾮static修饰的可以访问static修饰的成员或者⽅法

//静态变量
static int age;
//静态⽅法
public static int getAge(){
 return 5;
}
  • 静态代码块
加载类的时候,静态代码块会被执⾏⼀次,且只能执⾏⼀次
静态内容优先于⾮静态内容,所以静态代码⽐构造⽅法先执⾏
使⽤场景:⽤来⼀次性对静态成员变量进⾏赋值,或者类资源初始化等操作

public class 类名{
   static {
       //静态代码块
   }
}

# 如下
public class Student {
    static String sex;
    static int age;

    static {
        sex = "男生";
        System.out.println("静态代码块被执行了");
    }
}
posted @ 2022-05-02 16:58  DogLeftover  阅读(38)  评论(0编辑  收藏  举报