表达式(Expression)
注:在java中回车不用 /n 要用 %n打印
a=100; System.out.println( )
100>50
add(1,2);
语句:(Statement)
以分号结束
语句块(Block)
{
任意语句
}
JAVA的语句结构:顺序结果 ,分支结构 ,循环结构
分支结构:
1、if(逻辑表达式 备注:和c语言不同,一定是逻辑结果){
条件为真时执行
}else{
条件为假时执行
}
if(true)条件
规范:if后最好用大括号
2、switch语句(int类型 | string 类型 | Enum类型)
case 条件1:break
case 条件2: break
default:
循环结构:
while(条件){
}
for(初始化;条件;后续动作){
}
do{
}while(条件)
注:在java中了一种for的形式 foreach
for(元素类型 变量名:容量数组){ 例:for (int i=0;i<数组长度;i++){
} 元素类型 变量名=数组[i];
}
注:\t表示空格
continue 和 break 都支持一种带标签的形式
定义数组 int[] array={…}
array.length表示数组长度
**方法:**
1、限定符(Modifers) public / static
2、**返回值类型,如果没有返回值,要明确写void
3、**方法名称,命名习惯:首个单词全小写,以后的单词首字母大写,多是动词,或者动词后面跟名词
4、**参数列表(Paramaters List)
()没有参数 | (参数类型 参数名称)有参数
5、异常声明 throw 异常列表
6、**方法体{}
重点:关于方法的签名(Method signature)
方法名称+参数列表
int sum(int a,int b){} 和void sum(int a, int b){} 是同一个方法,重定义 在java中返回值是不算在方法签名里的
和 int sum(int a, int b, int c){} 不是同一个方法,因为参数列表不同
注:方法名称相同,但参数列表不同 叫做 重载(Overload) 规范:通常情况下,用不到重载 例外:重载在构造方法中很常见
递归方法
在java中,递归方法没有任何特殊性
long sum(int n ){
if (n1){return 1;}
else{sum(n-1)+n;}
}
思想:数学归纳法的思想 又递推和终止两部分组成
例如 : sum(n): n1 1 终止
n>1 sum(n-1)+n 递推
核心:不要在写递归时尝试展开递归过程,局部性的原则
汉诺塔游戏: (0号柱子 1号柱子 2号柱子)
n==1 把盘子从 源柱子 移到 目标柱子
n>1 递归 (n-1)移到另外的柱子
把最大的盘子移到目标
递归(n-1)移到目标