本系列博客是韩顺平老师java基础课的课程笔记
韩顺平P103-P155
- 1. 顺序
- 2. 分支
- 3. 循环
- 4. 跳转
- 5. 编程思想
1. 顺序
程序从上至下逐行执行,中间没有任何判断和跳转
2. 分支
- 单分支if
- 双分支if-else
- 多分支if - else if … - else
- 嵌套分支:建议嵌套最好不要超过三层
- switch
- break代表的是退出switch结构。首先判断表达式的值是否等于常量1…表达式不等于所有常量时,执行default
- 细节
- 表达式的数据类型应该和case的常量类型一致,或者可以自动转换成一致
- Switch(表达式)中表达式的返回值必须是 byte short int char enum string
- case子语句中的值必须是常量(或者常量表达式),不可以是变量
- default语句是可选的,不一定要写
- break语句用于在执行完一个case分支后跳出Switch,如果没有遇到break的话,程序会顺序执行,直到遇到下一个break
3. 循环
- for
- for(循环变量初始化,循环条件,循环变量迭代){循环操作}
- 细节
- 先执行循环操作,再执行循环变量的迭代
- 循环条件返回一个布尔值的表达式
- for(; 循环条件;)中的初始化和变量迭代可以写到其他地方,但是分号不能省略。(一般在for循环之外还想要使用循环变量时使用)
for(; ;)表示无限循环
for(int i=0,j=0 ; i<10; i++, j++)循环变量初始化以及迭代操作可以有多条语句
- while
- 循环变量初始化;while(循环条件){循环体;循环变量迭代}
- do…while
- 循环变量初始化;do{循环体;循环变量迭代;}while(循环条件);
- 细节
- 与while的区别在于:先执行再判断,也就是说至少会执行一次
- 最好有一个分号
- 多重循环
//打印空心金字塔
import java.util.Scanner;
public class Hello {
public static void main(String []args) {
Scanner in=new Scanner(System.in);
System.out.println("请输入最后一行的*个数:");
int n=in.nextInt();
int mid=n/2;
for(int i=0;i<=mid;i++){
for(int j=0;j<n;j++){
if(j==(mid-i)||j==(mid+i)||i==mid)
System.out.print("*");
else System.out.print(" ");
}
System.out.println('\n');
}
}
}
//
*
* *
* *
*******
4. 跳转
- break
- 用于终止某个语句块的执行,一般用在Switch或者循环中
- 细节
- 当break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是那一层语句块
- break后指定到那个标签,就退出到哪里
- 如果没有指明标签,默认退出最近的循环体
- 在实际的开发中,尽量不要使用标签
- continue
- 用于结束本次循环,继续执行下一次循环
- continue出现在多层嵌套语句体时,可以通过标签指定要跳过的是哪一层循环
- return
- 使用在方法上,表示跳出当前的方法,如果使用在main方法中,就是跳出当前的程序
5. 编程思想
- 化繁为简
- 将复杂的需求拆解成简单的需求逐步完成
- 先死后活
- 先考虑固定的值,然后转成可以灵活变化的值
因为有c++的基础,所以这一章听起来相对轻松,但是break使用label来结束指定的循环,这还挺让我惊喜的,以前从来没有听说过。