顺序结构
“顺序结构”代表“先执行a,再执行b”的逻辑。
选择结构
“选择结构”代表“如果…,则…”的逻辑。比如,如果看到红灯,则停车;
- if 单选择结构
if(条件){
执行语句块
}
- if - else 双选择结构
if(条件){
执行语句块1
}else{
执行语句块2
}
- if - else if - else 多选择结构
public class Test{
public static void main(String[] args) {
int result = (int) (100 * Math.random()); //随机生成一百以内的数
System.out.print("成绩是" + result + ", 等级为");
if (result < 60) {
System.out.println("D");
} else if (result < 70) {
System.out.println("C");
} else if (result < 90) {
System.out.println("B");
} else {
System.out.println("A");
}
}
}
- switch结构
public class Test{
public static void main(String[] args) {
int result = (int) (100 * Math.random());
System.out.print("成绩是" + result + ", 等级为");
switch(result/10){
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("D");
break;
case 6:
case 7:
System.out.println("C");
break;
case 8:
System.out.println("B");
break;
case 9:
case 10:
System.out.println("A");
break;
}
}
}
循环结构
“循环结构”代表“如果…,则再继续…”的逻辑。比如,如果没找到喜欢的人,则再继续找。
- for
for (初始表达式; 布尔表达式; 迭代因子) {
循环体;
}
- while 当条件表达式为True时反复执行{}内语句,直到不满足条件
while(布尔表达式){
...
}
- do - while 先执行一遍语句再判断条件
do {
...
} while(布尔表达式) ;
while与do-while的区别,在布尔表达式的值为false时while的循环体一次也不执行,而do-while至少执行一次
public class Test {
public static void main(String args[]) {
//for嵌套循环实现九九乘法表
for (int i = 1; i < 10; i++) { // i是一个乘数
for (int j = 1; j <= i; j++) { // j是另一个乘数
System.out.print(j + "*" + i + "=" + (i * j < 10 ? (" " + i * j) : i * j) + " ");
}
System.out.println();
}
}
}
break 和 continue
- break 结束循环
- continue 跳过当前循环,执行下一循环
递归
- 基本思想:“自己调用自己”
- 优点:简单的程序解决复杂问题
- 缺点:既耗时间又号内存
- 递归结构
- 递归头——递归结束的条件,无则陷入死循环
- 递归体——什么时候需要调用自身方法
/*递归:计算n!*/
public class Test {
public static void main(String[] args) {
long d1 = System.currentTimeMillis(); //记录递归前时间
System.out.printf("%d阶乘的结果:%s%n", 10, factorial(10));
long d2 = System.currentTimeMillis(); //记录递归后时间
System.out.printf("递归费时:%s%n", d2-d1); //计算耗时
}
/** 求阶乘的方法*/
static long factorial(int n){
if(n==1){//递归头
return 1;
}else{//递归体
return n*factorial(n-1);//n! = n * (n-1)!
}
}
}