Java學習筆記之函數和參數

函數是什麼?
是一塊代碼,接受零個或是多個參數,做一件事,並返回零個或一個值

函數定義
public static void sum(int a ,int b)//函數頭
    {
        int i; /
        int sum;
        sum = 0;
        for(i = a;i<=b;i++)
        {
            sum +=i;
        }
        System.out.println(a+"到"+b+"的和是"+sum);/函數體
    }  

調用函數
函數名(參數值)
()起到了表示函數調用的重要性
即使沒有參數也需要()
public static void f()
    {
        System.out.println("f()");
    } 
 

如果有參數,則需要給出正確的數量和順序
這些值會被按照順序依次用來初始化函數中的參數
public static void main(String[] args) {
        // TODO 自動生成的方法存根
        f();
        sum(1,10);
        sum(20,30);
        sum(35,45);
    } 

函數返回值
return:停止函數的執行,並且返回一個值
1. return;
2. return 表達式;
   public static int max(int a ,int b )
    {
        int ret;
        if(a>b)
        {
            ret=a;
        }
        else
        {
            ret=b;
        }
        return ret;
    }  

函數調用
如果函數有參數,調用函數時必須傳遞給它數量、類型正確的值
可以傳遞給函數的值是表達式的結果,包括:
字面值
變量
函數返回值
計算的結果
public static void main(String[] args) {
        // TODO 自動生成的方法存根
        f();
        sum(1,10);
        sum(20,30);
        sum(35,45);
        int a = 5;
        int b = 6;
        int c;
        c = max(10,12);
        c = max(a,b);
        c = max(a,23);
        c = max(c,23);
        c = max(max(c,a),max(5,b));
    }  

 類型不匹配
當函數期望的參數類型比調用函數時給的值的類型寬的時候,編譯器能悄悄替你把類型轉換好
char-->int-->double
  public static int max(double a ,int b )//參數
    {
        int ret;
        if(a>b)
        {
            ret=(int)a;
        }
    } 
public static void main(String[] args) {
        int a = 5;
        int b = 6;
        int c;
        c = max(10,12);
        c = max(a,b);
    } 

傳值
每個函數每一次運行有自己的變量空間,參數也位於這個獨立的空間中,和其他函數沒有關係
public static int max(double a ,int b )//參數
  c = max(10,12);
  c = max(a,b);//值

變量的生存期和作用域
生存期:什麼時候這個變量開始出現。到什麼時候消亡
作用域:在(代碼的)什麼範圍內可以訪問這個變量
大括號內
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章