转载:https://www.cnblogs.com/xdp-gacl/p/3627241.html
一、语句
1.1. 条件语句
1.1.1 if语句
1.1.2 分支语句(switch语句)
1.2. 循环语句
1.2.1 for循环语句
学会画内存分析图分析别人写的程序,这样就很容易分析出规律,分析出规律也就明白了别人的算法,也就很容易读懂别人的程序。
在内存中分析result=1!+2!……+10!的算法
分析到i等于3以后,基本上已经得到规律了,这个程序要计算的就是:result = 1!+2!+3!……+10!。
由此可以看出,懂得画内存去分析程序对读懂别人的程序是大有裨益的。以后读别人的程序的时候,觉得难读懂的时候就画内存分析。
学习别人的算法的最好的途径是分析别人写的程序,分析的过程结合内存分析是最好的做法。
注意:break、continue、return比较
1.break :跳出当前循环;但是如果是嵌套循环,则只能跳出当前的这一层循环,只有逐层break才能跳出所有循环;
2.continue:终止当前循环,但是不跳出循环(在循环中continue后面的语句是不会执行了),继续往下根据循环条件执行循环。
3、return
(1).return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行。
(2).return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致。
(3). return后面也可以不带参数,不带参数就是返回空,其实主要目的就是用于想中断函数执行,返回调用函数处。
1.2.2 while循环和do while循环
1.2.3 break和continue语句
二、方法
方法执行到return语句后,这个方法的执行就结束了,方法可以有返回值,但可以不用这个返回值。方法首先要定义,然后才能调用。
1 public class TestMethod{ 2 public static void main(String args[]){ 3 m(); 4 m1(3); 5 m2(2,3); 6 int i = m3(4,5); 7 System.out.println(i); 8 } 9 //以下定义的都是静态方法,静态方法可以在main()方法里面直接调用 10 public static void m(){ 11 System.out.println("Hello!"); 12 System.out.println("popo"); 13 } 14 15 public static void m1(int i){ 16 if(i==5){ 17 return; 18 } 19 System.out.println(i); 20 } 21 22 public static void m2(int i,int j){ 23 System.out.println(i+j); 24 } 25 26 public static int m3(int i,int j){ 27 return i+j; 28 } 29 }
三、变量的作用域
变量的作用域只在“{ }”有效,出了这个“{ }”就没有作用了
四、递归调用
递归:在一个方法内部对自身的调用就称为递归
整个方法执行在内存中执行的过程如下图所示:
范例:使用递归计算第5个斐波那契数列数
1 /*计算第5个斐波那契数列数*/ 2 /* 3 斐波那契数列特点:f(1)=1,f(2)=1,f(3)=f(1)+f(2),f(4)=(f2)+(f3)……依次类推。 4 即后一个数都是等于前两个数的和,这样的数列就是斐波那契数列。 5 */ 6 /* 7 使用递归调用的方法计算 8 */ 9 public class Fab{ 10 public static void main(String args[]){ 11 System.out.println(f(5)); 12 } 13 14 public static int f(int n){ 15 if(n==1||n==2){ 16 return 1; 17 }else{ 18 return f(n-1)+f(n-2); 19 } 20 } 21 }
整个在内存中执行过程如下图所示
五、程序的执行过程