//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(布尔表达式);
# 如下是死循环
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的话,会先执??次循环内容,再判断是否继续执?
for(初始化; 布尔表达式; 更新变化条件){
//循环执?的内容
}
//例?
for(int i=0; i<20;i++){
System.out.println(i);
}
# 循环过程如下:
* “初始化” ?般是初始化?个变量,只执??次,也可以是空语句
* 接着判断 “布尔表达式”,如果为true,则执?循环内容;为false则终?循环
* “更新变化条件” 执?循环内容后,更新循环控制变量
* 再次检测 “布尔表达式”,如果为true,则执?循环内容;为false则终?循环
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
循环结束
//如果布尔表达式为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 语句?多有 1 个 else 语句,可以0个else,且else 语句在最后,类似前?的都不成功,最后?定执?
if 语句可以有多个 else if 语句,它们必须在 else 语句之前
如果其中?个 else if 语句为 true,其他的 else if 以及 else 语句都将跳过执?
可以在if else??嵌套多层if else
# 如下
int age = 30;
if(age > 10){
if(age > 18){
// 语句体
if(age>25){
// 语句体
}else{
// 语句体
}
}else{
// 语句体
}
}else{
// 语句体
}
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和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静态代码块
修饰变量就是类变量,修饰?法就是类?法
总结: 类变量或者类?法,可以直接通过类名.?法名或者变量名进?调?,不?经过对象
# 如下
public class Student{
static int age;
static String name;
// 类方法
public static void sleep(){
}
}
和?静态变量的区别是,静态变量被所有的对象所共享,在内存中只有?份,它当且仅当在类初次加载时会被初始化。?静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有d 的副本互不影响
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("静态代码块被执行了");
}
}