结构
1.顺序结构
2.分支结构
a.
if(逻辑表达式){ //和C不同,一定是逻辑结果
true
}
else{
false
}
规范:if后最好加{}
b.
switch(int 数字|char|枚举|String){
case 条件1{
语句1;
break; }
case 条件2{
语句2;
break;}
default{
语句3;
break; }
}
switch支持string类型 换行是%n
3.循环结构
while
do-while
在java中多了一种foreach类型
continue break 支持带标签的形式(了解)
方法
1.限定符 public/static
*2.返回值类型,若无返回值,明确写void
*3.方法名称,命名习惯,首个单词全小写,之后的单词首字母大写,多是动词
*4.参数列表
()|(参数类型 参数名称)
5.异常处理 throws异常列表
*6.方法体{}
[限定符] 返回值 函数名(参数列表)[异常声明](方法体)
public static void main (String[] array)throws IOExpectin{
…
}
方法签名 方法名+参数列表
只有都相同才指同一个方法(返回类型不算在方法中 参数名也不重要 参数类型)
*重载(Overload):方法名称相同,但参数列表不同
规范:通常情况下,不常用(在构造方法时常出现)
*重写(Overwrite):与重载不同
递归方法
在java中,递归方法没有任何特殊性
思想:数学归纳法(递推、终止)
核心:切勿尝试写递归时展开递归过程(局部性的原则)
如何更好的书写、理解递归方法
1.书写
数学归纳法(局部性原则)
例:汉诺塔
0号柱子 1号柱子 2号柱子
n==1
把盘子从原柱子移到目标柱子
n>1
把n-1个盘子移到另一个柱子
把第n个盘子移到另一个柱子
把剩下的盘子移到目标柱子
a.递归公式
n的问题转化成n-1的问题
b.终止条件
n==1
2.方法调用栈(盗梦空间)
先进后出的方式