簡體   English   中英

使用在循環中聲明的變量或在循環外聲明它們

[英]Using variables declared in a loop or declaring them outside the loop

我是Java和程序設計的初學者,因此遇到了問題。

int[][]table = new int[numberOfShortTables][legnthOfShortTable]   

for(int i = 0; i < numberOfShortTables; i++) {
    char[]shortTable = sc.nextLine().toCharArray();
    for(int k = 0;k<legnthOfShortTable;k++){
        table[i][k]=shortTable[k];
    } 
}   

稍后在代碼中,我需要同時使用table[][]shortTable[]

我的問題是:是否可以以某種方式在循環內聲明變量,使其在循環外可用?

如果這不可能,我想知道如何在循環外聲明shortTable[]並使用sc.nextLine().toCharArray(); 在里面。

變量的作用域在聲明它的代碼塊內部,所以不,您不能在循環內聲明變量,然后在外部使用。

要直接回答您的問題,您需要做的就是首先使用char[]shortTable;在循環外聲明var char[]shortTable; 或類似的東西,然后使用shortTable = ...將其分配給循環。 這只是普通的變量作用域,循環沒有什么特別的。

您可以使用循環變量本身執行相同的操作。 int i; 幾行,然后for (i = 0....

嗨,看來您需要進一步了解一下示波器。

要以現在的方式回答您的問題,您將無法在for循環之后使用char [] shortTable,因此只需將其懸停在for循環上方,便可以使用它。 如果您還需要在其他方法中使用它,請參閱下面的更多信息。 (注意,如果您是初學者,請盡量避免使用靜態功能,如果您不理解其中的含義,將給您帶來無盡的頭痛)100%

簡而言之,您會獲得3種類別的范圍

  • private:這意味着您只能在該類中訪問該變量或方法
  • public:這意味着可以從類外部訪問任何有權訪問實例化對象的變量或方法。
  • protected:這意味着擴展類的任何內容都將能夠訪問該變量或方法。

在類級別定義變量時,該變量將可用於該類中的所有方法。

當您在方法中定義變量時,該方法內的所有循環/條件檢查都可以訪問該變量,即for,while和if語句內部。

當在for,while和if語句中定義變量時,只能在該循環內訪問該變量(將其視為方法內部的方法,並且該變量僅可用於定義該方法的方法。)

希望對理解范圍有所幫助。

我的問題是:是否可以以某種方式在循環內聲明變量,使其在循環外可用?

不,不可能。

如果這不可能,我想知道如何在循環外聲明shortTable []並使用sc.nextLine()。toCharArray();。 在里面。

如果您打算在循環外使用shortTable [],則不必在循環內聲明它。 只需在循環外聲明即可。 這樣做還允許您在循環中使用它。

暫無
暫無

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

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