簡體   English   中英

將用戶輸入從主方法調用到另一個方法

[英]Calling user input from main method into another method

您好,我是 Java 的新手,需要一些幫助。 如果我弄錯了一些措辭,我深表歉意。 我提示用戶在我的 main 方法中輸入 2 個數字,我需要將這兩個數字返回到已經設置了 2 個參數的 int [] 方法中。 所以我有一些類似的東西

public static int[] getnum (int a , int b) {

int [] z = {a,b}

return z;

}

public static void main(String[] args) {

Scanner scanner = new scanner (System.in);

System.out.println("Please enter a number.");

a = scanner.netInt();

System.out.println("Please enter another number.");

b = scanner.netInt();

getnum(a,b); // I don't know how to pass a and b into my getnum 

}

我試圖做 getnum (a,b); 但我不知道如何將其恢復到我的 getnum 方法。 我覺得它很簡單,但我無法將我的大腦包裹在它周圍我已經有一段時間了。

所以我已經有我必須在 getnum 中使用的參數我需要在我的 main 方法中使用 a 和 b 在我的 get num 方法中填充 x 和 y,以便我可以返回 z。 非常感謝任何方向或建議。 我希望我解釋清楚了。

首先,在編碼時給你的方法和變量命名一些比getnumabz更有意義的東西。 該答案的其余部分將基於如下所示的getIntArray()方法:

public static int[] getIntArray(int element1, int element2) {
    int[] intArray = { element1, element2 };
    return intArray;
}

此方法與您的方法完全相同,其唯一目的是將兩個提供的 arguments 傳遞給方法並將它們放入 integer (int) 數組並返回該數組:

對於您的用例, getIntArray()方法將 integer 值(用戶已在控制台窗口中輸入)存儲到int類型的 integer 數組中,以便稍后在您的代碼中使用。 在用戶成功提供所需的數值數據后,將調用此方法,這些數據被放入 integer 變量ab中,如下所示:

int[] myArray = getIntArray(a, b);

在調用getIntArray()方法之后,您可能希望通過在調用之后添加以下代碼行來證明數組中的值作為索引元素:

`System.out.println(Arrays.toString(myArray)); 

或者通過使用可能像這個標准for循環這樣的循環機制:

for (int i = 0; i < myArray.length; i++) {
    System.out.print(myArray[i]);
}

根據您的評論:

我試圖調用整個 Arrays.toString (getnum);

如果您想直接在Arrays.toString()方法中調用getIntArray() () 方法,那么您還必須為相應的getIntArray()方法參數element1element2提供所需的 arguments ab (由用戶提供)。 例如,這將工作得很好:

System.out.println(Arrays.toString(getIntArray(a, b));

由於getIntArray()方法包含必需的參數,因此您必須提供 arguments(值)以滿足這些特定方法參數的要求,否則將發生異常(錯誤)。


為了娛樂:

假設您要處理的不僅僅是兩個 integer 值。 假設您希望用戶提供 10 個 integer 值(或任何數量的整數),然后調用getIntArray()方法以返回 integer 數組中的所有這些值:

int myArray = getIntArray(10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
System.out.println(Arrays.toString(myArray));

控制台將顯示:

[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

表明每個提供的值確實作為索引元素包含在名為myArray的數組中。

你問這怎么可能? getIntArray()方法的參數已替換為所謂的Varargs Notation參數。 參數類型后的三個句點( ...稱為省略號)表示參數可以作為數組或以逗號分隔的 arguments 序列傳遞 Varargs只能用於最后的參數 position作為唯一的方法參數。 請參閱下面的新方法:

public static int[] getIntArray(int... elementValues) {
    return elementValues;
}

這個方法仍然和你的方法做的一樣,有一個例外,只要每個參數用逗號分隔,你可以傳遞任意數量的 arguments。 實際上,您根本不需要傳遞任何參數,但是在這個特定用例中,您將返回一個空 (null) 數組。 只是可以玩的東西。

參數是正確的步驟。 在您的 getnum (這並不意味着什么)方法中,就像 x 和 y 是局部變量一樣。 然后,在 main 方法中,在調用該方法時給 x 和 ya 值。 這是您的代碼的樣子:

import java.util.Scanner;

public class FILENAME {
  public static int[] getnum(int x, int y) {
    int[] z = { x, y };
    return z;
  }

  public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in); // Java is case sensitive!

    System.out.println("Please enter a number.");

    int a = scanner.netInt();

    System.out.println("Please enter another number.");

    int b = scanner.netInt();

    getnum(a, b); // You call the method with parameters.
  }
}

需要幫助請叫我。

暫無
暫無

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

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