- 基本语句
- 判断语句:多个并列代码体中只选择一个符合条件的代码体执行
//逻辑表达式:逻辑运算返回true和false的表达式 if(逻辑表达式1){ 语句1 }else if(逻辑表达式2){ 语句2 }...else{ 默认语句 //不满足所有逻辑判断时运行的语句 }
- 分支语句:多个并列代码体中只选择一个符合条件的代码体执行
//variable的类型只能为int值(byte,short和char都会隐式转换为int),jdk7以后variable可以为String //express为variable可能出现的值 switch(variable){ case express1: statement1; break; //防止执行下面case case express2: statement2; break; case express3: statement3; break; default: statement4 //所有case不匹配时,选择执行的语句 }
3.循环语句:多个代码体重复执行 (逻辑表达式判断为true时,执行循环体的语句)
-
while:不知道循环的具体次数时使用,先进行逻辑表达式判断后执行代码体
-
do...while:不知道循环的具体次数时使用,先执行一次代码体后进行逻辑表达式判断
-
for(;;):已知循环的具体次数时使用,先进行逻辑表达式判断后执行代码体
-
死循环:一般用于多线程通信中进入wait()阻塞的条件判断
//形式1
for(;;){}
//形式2
while(true){}
//多线程通信的使用
whlie(express){
wait();
}
- 递归:方法体中调用方法本身但方法的参数会变化,但是一定要有一个终结递归的条件也就是方法的出口(递归方法本体和终结递归条件的方法体并列且只能执行一个)。
- 递归的本质:方法帧的不断的入栈,后入栈的方法会先执行完
//斐波拉契数列 public int test(int i){ //参数验证 if(i<1){ System.out.println("输入的值不能小于1"); return 0; //方法出口 }else if(i==1 || i==2){ return 1; //调用方法本身 }else{ return test(n-1) + test(n-2); } }