程序结构与逻辑控制
表达式(Expression)
a=100;
100>50;
add(1,2);
语句(Statement)
以分号结束
语句块(Block)
{
任意语句
}
Java分支结构
顺序结构、分支结构、循环结构
分支结构的条件中,如果是 if 语句,则和C语言不同
if(逻辑表达式 备注 和C不同,一定是逻辑结果,即是true或fasle形式,不可是0或1)
{
条件为真时执行
}
else
{
条件为假时执行
}
if(true)条件
规范:if 后最好用大括号
if(条件){
C++;
d++;
}
在C语言中switch括号里只能是整型(int 类型)
而在java里swith可以
switch(int 类型 | String 类型 | Enum 类型枚举){
case 条件1:
case 条件2:
...
default:
}
和C类似若是不在每个语句中加上break则会逐条语句一直执行下去
while(条件){
}
for(){
}
do{
}while(条件);
在java中多了一种for的形式 foreach
for(元素类型 变量名 :容量数组){
相当于把数组中所有元素拿到循环中跑一遍
for(int i = 0;i<数组长度;i++)
{
元素类型 变量名 =数组[i];
}
}
continue和break都支持一种带标签的形式
方法:
-
限定符(Modifers) public/static
-
*返回值类型,如果没有返回值,要写明确void
-
*方法名称,命名习惯 首个单词全小写,以后的单词首字母大写,多是动词
-
*参数列表(paramaters list)
() (参数类型 参数名称)
5.异常声明 throws 异常列表
6.*方法体{}
~public static 1~ int 2~ calcSum 3~(int[] array)4~ throws Exception 5~{
~6~
}
重点:关于方法签名(Method signature)
方法名称+参数列表
int sum(int a,int b){ } 和 void sum(int a,int b){ }是重定义
int sum(int a,int b){ } 和 int sum(int a,int b,int c){ }不是重定义
方法名称相同,参数列表不同,叫做重载(overlord)
将重载和重写区分开(override)
通常情况下,用不到重载,例外是重载在构造方法(函数)中很常见
调用栈的概念,先进后出
示例伪代码
void a(){ }
void b(){a(); }
void c(){b(); }
void main(){c();}
递归方法
在java中,递归方法没有任何特殊性,重新调用了下自己
long sum(int n){
if (n==1) {return 1; }
else{return sum (n-1)+n;
}
思想:数学归纳法,递推和终止,不要尝试展开递归过程,注意局部,及求第n项,想前n-1项已知求n
汉诺塔问题:就是把最大的放到需要放的那个柱子上,其它的类似,即把前n-1放在中间,把最大的放到最右边
把其余的再挪回第一个柱子,再继续
大类型转小类型会报错,小类型转大类型不会报错,可以自然转换。