簡體   English   中英

如何將參數傳遞給方法

[英]how to pass parameters to methods

如果我要將從用戶讀取的3個整數傳遞給一個方法,那么我以哪種順序從用戶讀取這些整數是否重要? 我的意思是這段代碼之間有區別:

        int small = scan.nextInt();
        int big = scan.nextInt();
        int medium= scan.nextInt(); 
        size(small, big, medium);
        //size is a method I wrote :public static boolean size(int small, int big, int medium)

和此代碼:

        int medium= scan.nextInt();
        int small = scan.nextInt();
        int big = scan.nextInt();
        size(small, big, medium);

不! 盡管您應該讓用戶知道他們正在輸入什么:

    System.out.println("Enter the medium value: );
    int medium= scan.nextInt();
    System.out.println("Enter the small value: );
    int small = scan.nextInt();
    System.out.println("Enter the big value: );
    int big = scan.nextInt();
    size(small, big, medium);

話雖如此,如果用戶輸入的值不正確(即,如果用戶在輸入中值時輸入的是小值,則可能會有問題)。

因此,您應該在調用該方法之前執行一些檢查,如下所示:

int small, medium, big;
do {
    System.out.println("Enter the medium value: );
    medium= scan.nextInt();
    System.out.println("Enter the small value: );
    small = scan.nextInt();
    System.out.println("Enter the big value: );
    big = scan.nextInt();
while (!(small < medium && medium < large));

size(small, big, medium);

如果用戶輸入102030 ,則第一個版本將具有方法調用size(10,20,30)和第二將具有size(20,10,30) 那是有區別的。

1.僅在設置方法的方式上設置變量時沒有區別,例如,無論如何排序,都可以。

 int small = scan.nextInt();
 int big = scan.nextInt();
 int medium= scan.nextInt();
  1. 該調用應模仿您創建方法的方式,這樣您將得到語法錯誤,這是我第一次開始編程時最大的缺點之一

     public int size(int small, int big , int medium){ ....} size(small, big, medium); // correct size(big,small, medium);// wrong in this case 

3.但是您可以以任何順序聲明變量,只要在調用方法時就可以按照創建方法的相同方式對其進行設置。

int medium= scan.nextInt();
int small = scan.nextInt();
int big = scan.nextInt();
size(small, big, medium);

4.其他示例,如果您要以與第二個示例相同的方式調用size方法,則可以這樣設置方法:

public int size(int big, int small , int medium){
....} 
size(big,small, medium); // correct
size(small, big, medium); // wrong in this case 

您應該提示用戶,以便他/她可以插入正確的Data。 除非方法本身直接處理訂單,否則它基本上沒有區別。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM