源无极

导航

 

转载: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 }

 

  整个在内存中执行过程如下图所示

  

五、程序的执行过程

  

posted on 2018-12-02 15:07  源无极  阅读(89)  评论(0编辑  收藏  举报