逻辑控制和方法使用
首先说明:
表达式(Expression)
a=100;
100>50;
add(1,2);
语句(Statement)
以分号结束
语句块(Block)
{
任意语句
}
一.程序结构和逻辑控制
1.顺序结构
一步一步执行
2.分支结构:
中间有结构
(1) if(逻辑表达式,备注,和c不同,一定是逻辑结构){
条件为真时执行
} else{
条件为假时执行
}
if(true)条件
规范:if后最好用大括号
if(条件){
c++;
d++;
}
(2) switch ( int 类型 | String类型 | Enum类型 ){
case 条件1:{
内容时满足时执行[break];
}
case 条件2:{
内容满足时执行[break];
……
default:{
内容不满足时执行[break];}
}
注意:回车用%n直接不要用\n
switch支持string类型
3.循环结构
有是和否,和c一样
while(条件)
{
}
for(初始化;条件;后续条件){
}
do{
}while (条件)
在java中多了一种for的形式 foreach
for(元素类型 变量名:容量数组){ for (int i =0;i<数组长度:i++){
} 元素类型 变量名=数组[i];
}
continue 和break 都支持一种带标签的形式(认识即可)
二.方法
1.方法的定义
(1).限定符(Modifers) public/static
(2).**返回值类型,如果没有返回值,要明确些void
(3).**方法名称,命名习惯,首个单词全小写
(4).**参数列表(
(5).异常声明 throws 异常列表
(6).**方法体{}
(**表示都要出现)
public static int calsSum (int [] array) throws Exception {
1 2 3 4 5
……
6
}
重点:关于方法签名(Method signature)
方法名称+参数列表
如果⽅法以void声明,那么可以使⽤return来结束调⽤(常常与if语句配合使⽤)
int sum(int a,int b){} 重定义
void sum(int a,int b){} 不是重定义
itn sum(itn a,int b,int c){}
方法名称相同,但参数列表不同
2.重载(overlode)
要和重写(override)区别
方法重载定义:⽅法名称相同,参数的类型、顺序或个数不同(简称:参数列表不同)
⽅法的签名:指的是⽅法名与参数,返回类型不是签名的⼀部分
(重要) 不能有两个名字相同、参数类型也相同却返回不同类型值的⽅法
规范:通常情况下,用不到重载
例外:重载在方法中很常见
示例伪代码
void a(){}
void b(){a{};}
void c(){b{};}
void main() {c();}
三.递归方法
1.定义:指的是⼀个⽅法⾃⼰调⽤⾃⼰的⽅式。
2.递归⽅法的特点:⽅法必须有递归的结束条件;⽅法在每次递归处理的时候⼀定要作出⼀些变更
3.在java中,递归函数没有任何的特殊性
long sum(int n){
if (n==1){return 1;)
else {return sum(n-1)+n;}
}
思想:数学归纳法思想
核心:不要写递归时尝试展开整个过程,局部性原则
汉罗塔问题:
0号柱子 1号柱子 2号柱子
n ==1 把盘子从源柱子移到目标柱子
n>1 递归(n-1)移到另外的柱子,把最大的盘子移到目标,递归(n-1)移到目标